source: svn/trunk/newcon3bcm2_21bu/nexus/modules/security/7552/Makefile

Last change on this file was 2, checked in by phkim, 11 years ago

1.phkim

  1. revision copy newcon3sk r27
  • Property svn:executable set to *
File size: 8.0 KB
Line 
1#############################################################################
2#    (c)2010-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: Makefile $
39# $brcm_Revision: 1 $
40# $brcm_Date: 10/5/11 9:38a $
41#
42# Module Description:
43#
44# Revision History:
45#
46# $brcm_Log: /nexus/modules/security/7400/Makefile $
47#
48# 1   10/5/11 9:38a cdisc
49# SW7425-1114: checking in libnexus_security
50#
51# 2   9/15/10 12:17p cdisc
52# SW35230-1352: adding HSM to security library
53#
54# 1   9/14/10 12:30p cdisc
55# SW35230-1352: adding Makefile for nexus security library
56#
57#############################################################################
58NEXUS_TOP := $(shell cd ../../../../nexus; pwd)
59MAGNUM_TOP := $(shell cd ../../../../magnum; pwd)
60
61# Include nexus definitions
62include $(NEXUS_TOP)/build/nexus_defs.inc
63include $(NEXUS_TOP)/platforms/$(NEXUS_PLATFORM)/build/nexus_platforms.inc
64
65
66BCHP_VER_LOWER := $(shell awk 'BEGIN{print tolower("$(BCHP_VER)")}')
67
68# Add in includes for Nexus Security module
69include $(NEXUS_TOP)/modules/security/$(BCHP_CHIP)/security.inc
70
71# Convert include paths into single variable
72NEXUS_APP_INCLUDE_PATHS := $(foreach module, $(NEXUS_MODULES), $(NEXUS_$(module)_PUBLIC_INCLUDES))
73NEXUS_APP_INCLUDE_PATHS += $(foreach module, $(NEXUS_MODULES), $(NEXUS_$(module)_PRIVATE_INCLUDES))
74NEXUS_APP_DEFINES := $(foreach module, $(NEXUS_MODULES), $(NEXUS_$(module)_DEFINES))
75NEXUS_APP_DEFINES += $(foreach module, $(NEXUS_MODULES),NEXUS_HAS_$(module))
76
77# Add in magnum base module paths also
78include $(MAGNUM_TOP)/basemodules/kni/bkni.inc
79include $(MAGNUM_TOP)/basemodules/std/bstd.inc
80include $(MAGNUM_TOP)/basemodules/dbg/bdbg.inc
81include $(MAGNUM_TOP)/basemodules/chp/bchp.inc
82include $(MAGNUM_TOP)/basemodules/reg/breg.inc
83include $(MAGNUM_TOP)/basemodules/err/berr.inc
84include $(MAGNUM_TOP)/basemodules/int/bint.inc
85include $(MAGNUM_TOP)/basemodules/tmr/btmr.inc
86include $(MAGNUM_TOP)/basemodules/mem/bmem.inc
87include $(MAGNUM_TOP)/commonutils/lst/blst.inc
88include $(MAGNUM_TOP)/commonutils/avc/bavc.inc
89include $(MAGNUM_TOP)/commonutils/sur/bsur.inc
90include $(MAGNUM_TOP)/commonutils/pxl/bpxl.inc
91include $(MAGNUM_TOP)/commonutils/fmt/bfmt.inc
92include $(MAGNUM_TOP)/commonutils/mrc/bmrc.inc
93# Add in includes for Nexus Security Magnum modules (HSM PI)
94include $(NEXUS_SECURITY_MAGNUM_MODULES)
95
96# Convert magnum includes into the same variable
97NEXUS_APP_INCLUDE_PATHS += $(foreach module, $(MAGNUM_MODULES), $($(module)_INCLUDES))
98NEXUS_APP_DEFINES += $(foreach module, $(MAGNUM_MODULES), $($(module)_DEFINES))
99
100
101# Custom include paths
102CFLAGS += -I./include
103CFLAGS += -I./src
104CFLAGS += -I$(NEXUS_TOP)/modules/core/$(BCHP_CHIP)/include
105CFLAGS += -I$(NEXUS_TOP)/platforms/$(PLATFORM)/bin/syncthunk/
106CFLAGS += -I$(NEXUS_TOP)/base/include
107CFLAGS += -I$(NEXUS_TOP)/base/include/linuxuser
108CFLAGS += -I$(NEXUS_TOP)/platforms/$(PLATFORM)/include
109
110CPPFLAGS += $(addprefix -I, ${NEXUS_APP_INCLUDE_PATHS})
111
112# add Nexus flags
113CFLAGS += ${NEXUS_CFLAGS}
114CFLAGS += $(addprefix -D, ${NEXUS_APP_DEFINES})
115CFLAGS += -DBCHP_CHIP=$(BCHP_CHIP)
116CFLAGS += -DBCHP_VER=$(BCHP_VER_LOWER)
117CFLAGS += -DPIC -fpic
118
119
120############################################################################
121#                             
122#vvvv#####################vvvvvvvvvvvvvvvvvvvvvvv#####################vvvv##
123
124
125LIB_BASENAME        := nexus_security
126D_ALL_MODULE_DIR        := $(filter-out include%, $(shell find . -maxdepth 2 -type d))
127
128
129############
130# Set F_SRC_EXCLUDES to the basenames of C/C++ files you would like to
131# exclude from compilation.  By default, all *.c and *.cpp files will
132# be compiled. 
133#####
134F_SRC_EXCLUDES          += 
135
136
137############
138# Set F_PUBLIC_INCS to the basenames of include files that are to be
139# used by other libraries or applications.  These files will be
140# installed into .../${BCHP_VER}/include/
141#####
142F_PUBLIC_INCS           += $(sort $(notdir $(shell find ${D_ALL_MODULE_DIR} -name '*.h')))
143
144
145
146############
147# If your library depends on another shared lib, you should add that
148# lib here (and any additional lib directories to search).
149#####
150LDFLAGS                         += 
151
152
153
154############
155# Directory where to install the headers
156#####
157D_FOR_INC_INSTALL       := 
158
159
160
161############
162# You probably shouldn't have to modify the text below this point.
163#####
164F_PUBLIC_LIBS           += lib${LIB_BASENAME}.a lib${LIB_BASENAME}.so
165D_FOR_LIB_INSTALL       := $(NEXUS_TOP)/bin
166F_SRCS              := $(NEXUS_SECURITY_SOURCES)
167F_SRCS              += $(BHSM_SOURCES)
168F_SRCS_GPG          := $(notdir $(wildcard src/be_loader/*/src/*.gpg))
169F_PREBUILT_OBJS     := $(patsubst %.gpg,%.o,${F_SRCS_GPG})
170F_OBJS                          := $(patsubst %.c,%.o, ${F_SRCS})  ${F_PREBUILT_OBJS}
171F_INSTALLED_LIBS        := $(addprefix ${D_FOR_LIB_INSTALL}/, ${F_PUBLIC_LIBS})
172#^^^^#####################^^^^^^^^^^^^^^^^^^^^^^^#####################^^^^##
173
174
175
176############################################################################
177#                              MAIN TARGETS
178#vvvv#####################vvvvvvvvvvvvvvvvvvvvvvv#####################vvvv##
179all: ${F_PUBLIC_LIBS}
180
181clean:
182        find -name '*.d' -o -name '*.o'  | xargs rm -f
183        ls *.a  | xargs rm -f
184        ls *.so | xargs rm -f
185        rm -f ${F_OBJS}
186        rm -f ${F_INSTALLED_LIBS}
187
188
189#^^^^#####################^^^^^^^^^^^^^^^^^^^^^^^#####################^^^^##
190
191
192
193############################################################################
194#                             BUILD RULES
195#vvvv#####################vvvvvvvvvvvvvvvvvvvvvvv#####################vvvv##
196lib${LIB_BASENAME}.so: ${F_OBJS} 
197        ${CC} -shared -o $@  ${LDFLAGS}  $^ -Wl,-dy
198        ${STRIP_COMMAND}
199
200lib${LIB_BASENAME}.a: ${F_OBJS} 
201        ${AR} rc  $@  $^ 
202        ${STRIP_COMMAND}
203
204idirs:
205        @ [ -d ${D_FOR_LIB_INSTALL} ] || mkdir -p ${D_FOR_LIB_INSTALL}
206
207install: all idirs ${F_INSTALLED_LIBS}
208
209${D_FOR_LIB_INSTALL}/%.a : %.a
210        install -m 0755 $< $@ 
211
212${D_FOR_LIB_INSTALL}/%.so : %.so
213        install -m 0755 $< $@ 
214
215${F_PREBUILT_OBJS} : %.o : %.obj
216        ${BDVD_PPRINT.cp}
217        @cp $^ $@
Note: See TracBrowser for help on using the repository browser.