| 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 | ############################################################################# |
|---|
| 58 | NEXUS_TOP := $(shell cd ../../../../nexus; pwd) |
|---|
| 59 | MAGNUM_TOP := $(shell cd ../../../../magnum; pwd) |
|---|
| 60 | |
|---|
| 61 | # Include nexus definitions |
|---|
| 62 | include $(NEXUS_TOP)/build/nexus_defs.inc |
|---|
| 63 | include $(NEXUS_TOP)/platforms/$(NEXUS_PLATFORM)/build/nexus_platforms.inc |
|---|
| 64 | |
|---|
| 65 | |
|---|
| 66 | BCHP_VER_LOWER := $(shell awk 'BEGIN{print tolower("$(BCHP_VER)")}') |
|---|
| 67 | |
|---|
| 68 | # Add in includes for Nexus Security module |
|---|
| 69 | include $(NEXUS_TOP)/modules/security/$(BCHP_CHIP)/security.inc |
|---|
| 70 | |
|---|
| 71 | # Convert include paths into single variable |
|---|
| 72 | NEXUS_APP_INCLUDE_PATHS := $(foreach module, $(NEXUS_MODULES), $(NEXUS_$(module)_PUBLIC_INCLUDES)) |
|---|
| 73 | NEXUS_APP_INCLUDE_PATHS += $(foreach module, $(NEXUS_MODULES), $(NEXUS_$(module)_PRIVATE_INCLUDES)) |
|---|
| 74 | NEXUS_APP_DEFINES := $(foreach module, $(NEXUS_MODULES), $(NEXUS_$(module)_DEFINES)) |
|---|
| 75 | NEXUS_APP_DEFINES += $(foreach module, $(NEXUS_MODULES),NEXUS_HAS_$(module)) |
|---|
| 76 | |
|---|
| 77 | # Add in magnum base module paths also |
|---|
| 78 | include $(MAGNUM_TOP)/basemodules/kni/bkni.inc |
|---|
| 79 | include $(MAGNUM_TOP)/basemodules/std/bstd.inc |
|---|
| 80 | include $(MAGNUM_TOP)/basemodules/dbg/bdbg.inc |
|---|
| 81 | include $(MAGNUM_TOP)/basemodules/chp/bchp.inc |
|---|
| 82 | include $(MAGNUM_TOP)/basemodules/reg/breg.inc |
|---|
| 83 | include $(MAGNUM_TOP)/basemodules/err/berr.inc |
|---|
| 84 | include $(MAGNUM_TOP)/basemodules/int/bint.inc |
|---|
| 85 | include $(MAGNUM_TOP)/basemodules/tmr/btmr.inc |
|---|
| 86 | include $(MAGNUM_TOP)/basemodules/mem/bmem.inc |
|---|
| 87 | include $(MAGNUM_TOP)/commonutils/lst/blst.inc |
|---|
| 88 | include $(MAGNUM_TOP)/commonutils/avc/bavc.inc |
|---|
| 89 | include $(MAGNUM_TOP)/commonutils/sur/bsur.inc |
|---|
| 90 | include $(MAGNUM_TOP)/commonutils/pxl/bpxl.inc |
|---|
| 91 | include $(MAGNUM_TOP)/commonutils/fmt/bfmt.inc |
|---|
| 92 | include $(MAGNUM_TOP)/commonutils/mrc/bmrc.inc |
|---|
| 93 | # Add in includes for Nexus Security Magnum modules (HSM PI) |
|---|
| 94 | include $(NEXUS_SECURITY_MAGNUM_MODULES) |
|---|
| 95 | |
|---|
| 96 | # Convert magnum includes into the same variable |
|---|
| 97 | NEXUS_APP_INCLUDE_PATHS += $(foreach module, $(MAGNUM_MODULES), $($(module)_INCLUDES)) |
|---|
| 98 | NEXUS_APP_DEFINES += $(foreach module, $(MAGNUM_MODULES), $($(module)_DEFINES)) |
|---|
| 99 | |
|---|
| 100 | |
|---|
| 101 | # Custom include paths |
|---|
| 102 | CFLAGS += -I./include |
|---|
| 103 | CFLAGS += -I./src |
|---|
| 104 | CFLAGS += -I$(NEXUS_TOP)/modules/core/$(BCHP_CHIP)/include |
|---|
| 105 | CFLAGS += -I$(NEXUS_TOP)/platforms/$(PLATFORM)/bin/syncthunk/ |
|---|
| 106 | CFLAGS += -I$(NEXUS_TOP)/base/include |
|---|
| 107 | CFLAGS += -I$(NEXUS_TOP)/base/include/linuxuser |
|---|
| 108 | CFLAGS += -I$(NEXUS_TOP)/platforms/$(PLATFORM)/include |
|---|
| 109 | |
|---|
| 110 | CPPFLAGS += $(addprefix -I, ${NEXUS_APP_INCLUDE_PATHS}) |
|---|
| 111 | |
|---|
| 112 | # add Nexus flags |
|---|
| 113 | CFLAGS += ${NEXUS_CFLAGS} |
|---|
| 114 | CFLAGS += $(addprefix -D, ${NEXUS_APP_DEFINES}) |
|---|
| 115 | CFLAGS += -DBCHP_CHIP=$(BCHP_CHIP) |
|---|
| 116 | CFLAGS += -DBCHP_VER=$(BCHP_VER_LOWER) |
|---|
| 117 | CFLAGS += -DPIC -fpic |
|---|
| 118 | |
|---|
| 119 | |
|---|
| 120 | ############################################################################ |
|---|
| 121 | # |
|---|
| 122 | #vvvv#####################vvvvvvvvvvvvvvvvvvvvvvv#####################vvvv## |
|---|
| 123 | |
|---|
| 124 | |
|---|
| 125 | LIB_BASENAME := nexus_security |
|---|
| 126 | D_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 | ##### |
|---|
| 134 | F_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 | ##### |
|---|
| 142 | F_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 | ##### |
|---|
| 150 | LDFLAGS += |
|---|
| 151 | |
|---|
| 152 | |
|---|
| 153 | |
|---|
| 154 | ############ |
|---|
| 155 | # Directory where to install the headers |
|---|
| 156 | ##### |
|---|
| 157 | D_FOR_INC_INSTALL := |
|---|
| 158 | |
|---|
| 159 | |
|---|
| 160 | |
|---|
| 161 | ############ |
|---|
| 162 | # You probably shouldn't have to modify the text below this point. |
|---|
| 163 | ##### |
|---|
| 164 | F_PUBLIC_LIBS += lib${LIB_BASENAME}.a lib${LIB_BASENAME}.so |
|---|
| 165 | D_FOR_LIB_INSTALL := $(NEXUS_TOP)/bin |
|---|
| 166 | F_SRCS := $(NEXUS_SECURITY_SOURCES) |
|---|
| 167 | F_SRCS += $(BHSM_SOURCES) |
|---|
| 168 | F_SRCS_GPG := $(notdir $(wildcard src/be_loader/*/src/*.gpg)) |
|---|
| 169 | F_PREBUILT_OBJS := $(patsubst %.gpg,%.o,${F_SRCS_GPG}) |
|---|
| 170 | F_OBJS := $(patsubst %.c,%.o, ${F_SRCS}) ${F_PREBUILT_OBJS} |
|---|
| 171 | F_INSTALLED_LIBS := $(addprefix ${D_FOR_LIB_INSTALL}/, ${F_PUBLIC_LIBS}) |
|---|
| 172 | #^^^^#####################^^^^^^^^^^^^^^^^^^^^^^^#####################^^^^## |
|---|
| 173 | |
|---|
| 174 | |
|---|
| 175 | |
|---|
| 176 | ############################################################################ |
|---|
| 177 | # MAIN TARGETS |
|---|
| 178 | #vvvv#####################vvvvvvvvvvvvvvvvvvvvvvv#####################vvvv## |
|---|
| 179 | all: ${F_PUBLIC_LIBS} |
|---|
| 180 | |
|---|
| 181 | clean: |
|---|
| 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## |
|---|
| 196 | lib${LIB_BASENAME}.so: ${F_OBJS} |
|---|
| 197 | ${CC} -shared -o $@ ${LDFLAGS} $^ -Wl,-dy |
|---|
| 198 | ${STRIP_COMMAND} |
|---|
| 199 | |
|---|
| 200 | lib${LIB_BASENAME}.a: ${F_OBJS} |
|---|
| 201 | ${AR} rc $@ $^ |
|---|
| 202 | ${STRIP_COMMAND} |
|---|
| 203 | |
|---|
| 204 | idirs: |
|---|
| 205 | @ [ -d ${D_FOR_LIB_INSTALL} ] || mkdir -p ${D_FOR_LIB_INSTALL} |
|---|
| 206 | |
|---|
| 207 | install: 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 $^ $@ |
|---|