1 # 2 # CDDL HEADER START 3 # 4 # The contents of this file are subject to the terms of the 5 # Common Development and Distribution License (the "License"). 6 # You may not use this file except in compliance with the License. 7 # 8 # You can obtain a copy of the license at src/sun_nws/OPENSOLARIS.LICENSE 9 # or http://www.opensolaris.org/os/licensing. 10 # See the License for the specific language governing permissions 11 # and limitations under the License. 12 # 13 # When distributing Covered Code, include this CDDL HEADER in each 14 # file and include the License file at src/sun_nws/OPENSOLARIS.LICENSE. 15 # If applicable, add the following below this CDDL HEADER, with the 16 # fields enclosed by brackets "[]" replaced with your own identifying 17 # information: Portions Copyright [yyyy] [name of copyright owner] 18 # 19 # CDDL HEADER END 20 # 21 # 22 # Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23 # Use is subject to license terms. 24 # 25 #ident "@(#)Makefile 1.20 08/07/01 SMI" 26 # 27 # src/sun_nws/sun_fc/Makefile 28 # 29 30 include ../Makefile.config 31 include ../Makefile.libs 32 33 NAME = libsun_fc.a 34 VERS = .1 35 36 DYNLIB = $(NAME:.a=.so$(VERS)) 37 LIBLINKS = $(NAME:.a=.so) 38 LIBNAME = $(NAME:lib%.a=%) 39 40 MODULE = $(DYNLIB) 41 42 STAGING32 = $(PROTO_ROOT)/usr/lib 43 sparc_STAGING64 = $(STAGING32)/sparcv9 44 i386_STAGING64 = $(STAGING32)/amd64 45 STAGING64 = $($(MACH)_STAGING64) 46 47 MODULE_PKGS = SUNWfchba 48 MODULE_PKGS += SUNWfchbar 49 50 MODULE_SRC = Lockable.cc 51 MODULE_SRC += HBA.cc 52 MODULE_SRC += HBAPort.cc 53 MODULE_SRC += Handle.cc 54 MODULE_SRC += HandlePort.cc 55 MODULE_SRC += IOError.cc 56 MODULE_SRC += InternalError.cc 57 MODULE_SRC += Listener.cc 58 MODULE_SRC += EventBridgeFactory.cc 59 MODULE_SRC += HBAList.cc 60 MODULE_SRC += FCHBA.cc 61 MODULE_SRC += FCHBAPort.cc 62 MODULE_SRC += TgtFCHBA.cc 63 MODULE_SRC += TgtFCHBAPort.cc 64 MODULE_SRC += FCSyseventBridge.cc 65 MODULE_SRC += AdapterAddEventListener.cc 66 MODULE_SRC += AdapterEventListener.cc 67 MODULE_SRC += AdapterPortEventListener.cc 68 MODULE_SRC += AdapterPortStatEventListener.cc 69 MODULE_SRC += LinkEventListener.cc 70 MODULE_SRC += TargetEventListener.cc 71 MODULE_SRC += HBA_RegisterLibrary.cc 72 MODULE_SRC += HBA_RegisterLibraryV2.cc 73 MODULE_SRC += Sun_fcCloseAdapter.cc 74 MODULE_SRC += Sun_fcFreeLibrary.cc 75 MODULE_SRC += Sun_fcGetAdapterAttributes.cc 76 MODULE_SRC += Sun_fcGetAdapterName.cc 77 MODULE_SRC += Sun_fcGetAdapterPortAttributes.cc 78 MODULE_SRC += Sun_fcGetBindingCapability.cc 79 MODULE_SRC += Sun_fcGetBindingSupport.cc 80 MODULE_SRC += Sun_fcGetDiscPortAttrs.cc 81 MODULE_SRC += Sun_fcGetEventBuffer.cc 82 MODULE_SRC += Sun_fcGetFC4Statistics.cc 83 MODULE_SRC += Sun_fcGetFCPStatistics.cc 84 MODULE_SRC += Sun_fcGetFcpPersistentBinding.cc 85 MODULE_SRC += Sun_fcGetFcpTargetMapping.cc 86 MODULE_SRC += Sun_fcGetFcpTargetMappingV2.cc 87 MODULE_SRC += Sun_fcGetNumberOfAdapters.cc 88 MODULE_SRC += Sun_fcGetPersistentBindingV2.cc 89 MODULE_SRC += Sun_fcGetPortAttributesByWWN.cc 90 MODULE_SRC += Sun_fcGetPortStatistics.cc 91 MODULE_SRC += Sun_fcGetRNIDMgmtInfo.cc 92 MODULE_SRC += Sun_fcGetVendorLibraryAttributes.cc 93 MODULE_SRC += Sun_fcGetVersion.cc 94 MODULE_SRC += Sun_fcLoadLibrary.cc 95 MODULE_SRC += Sun_fcOpenAdapter.cc 96 MODULE_SRC += Sun_fcOpenAdapterByWWN.cc 97 MODULE_SRC += Sun_fcRefreshAdapterConfiguration.cc 98 MODULE_SRC += Sun_fcRefreshInformation.cc 99 MODULE_SRC += Sun_fcRegisterForAdapterAddEvents.cc 100 MODULE_SRC += Sun_fcRegisterForAdapterEvents.cc 101 MODULE_SRC += Sun_fcRegisterForAdapterPortEvents.cc 102 MODULE_SRC += Sun_fcRegisterForAdapterPortStatEvents.cc 103 MODULE_SRC += Sun_fcRegisterForLinkEvents.cc 104 MODULE_SRC += Sun_fcRegisterForTargetEvents.cc 105 MODULE_SRC += Sun_fcRemoveAllPersistentBindings.cc 106 MODULE_SRC += Sun_fcRemoveCallback.cc 107 MODULE_SRC += Sun_fcRemovePersistentBinding.cc 108 MODULE_SRC += Sun_fcResetStatistics.cc 109 MODULE_SRC += Sun_fcScsiInquiryV2.cc 110 MODULE_SRC += Sun_fcScsiReadCapacityV2.cc 111 MODULE_SRC += Sun_fcScsiReportLUNsV2.cc 112 MODULE_SRC += Sun_fcSendCTPassThru.cc 113 MODULE_SRC += Sun_fcSendCTPassThruV2.cc 114 MODULE_SRC += Sun_fcSendLIRR.cc 115 MODULE_SRC += Sun_fcSendRLS.cc 116 MODULE_SRC += Sun_fcSendRNID.cc 117 MODULE_SRC += Sun_fcSendRNIDV2.cc 118 MODULE_SRC += Sun_fcSendRPL.cc 119 MODULE_SRC += Sun_fcSendRPS.cc 120 MODULE_SRC += Sun_fcSendReadCapacity.cc 121 MODULE_SRC += Sun_fcSendReportLUNs.cc 122 MODULE_SRC += Sun_fcSendSRL.cc 123 MODULE_SRC += Sun_fcSendScsiInquiry.cc 124 MODULE_SRC += Sun_fcSetBindingSupport.cc 125 MODULE_SRC += Sun_fcSetPersistentBindingV2.cc 126 MODULE_SRC += Sun_fcSetRNIDMgmtInfo.cc 127 MODULE_SRC += Sun_fcGetNumberOfTgtAdapters.cc 128 MODULE_SRC += Sun_fcGetTgtAdapterName.cc 129 MODULE_SRC += Sun_fcOpenTgtAdapter.cc 130 MODULE_SRC += Sun_fcOpenTgtAdapterByWWN.cc 131 MODULE_SRC += Trace.cc 132 MODULE_SRC += Sun_fcNPIVGetAdapterAttributes.cc 133 MODULE_SRC += Sun_fcGetPortNPIVAttributes.cc 134 MODULE_SRC += Sun_fcCreateNPIVPort.cc 135 MODULE_SRC += Sun_fcGetNPIVPortInfo.cc 136 MODULE_SRC += Sun_fcDeleteNPIVPort.cc 137 MODULE_SRC += HBANPIVPort.cc 138 MODULE_SRC += FCHBANPIVPort.cc 139 MODULE_SRC += HandleNPIVPort.cc 140 MODULE_SRC += AdapterDeviceEventListener.cc 141 MODULE_SRC += Sun_fcRegisterForAdapterDeviceEvents.cc 142 MODULE_SRC += Sun_fcAdapterCreateWWN.cc 143 MODULE_SRC += Sun_fcAdapterReturnWWN.cc 144 145 MODULE_OBJ_32 = $(MODULE_SRC:%.cc=$(OBJ32)/%.o) 146 MODULE_OBJ_64 = $(MODULE_SRC:%.cc=$(OBJ64)/%.o) 147 148 BINARY32 = $(OBJ32)/$(MODULE) 149 $(BUILD64)BINARY64 = $(OBJ64)/$(MODULE) 150 BINARIES = $(BINARY32) $(BINARY64) 151 152 LIBS = $(DYNLIB) 153 154 $(BINARY32):= DYNFLAGS += -M $(OBJ32)/mapfile 155 $(BINARY64):= DYNFLAGS += -M $(OBJ64)/mapfile 156 157 LDLIBS = -ldevinfo 158 LDLIBS += -lsysevent 159 LDLIBS += -lnvpair 160 LDLIBS += -lCstd 161 LDLIBS += -lCrun 162 LDLIBS += -lc 163 LDLIBS += -lrt 164 165 LDLIBS32 = -L$(ON_LIB_32) 166 LDLIBS32 += -L$(ON_USRLIB_32) 167 LDLIBS32 += -R$(OS_LIB_32) 168 LDLIBS32 += -R$(OS_USRLIB_32) 169 LDLIBS32 += $(LDLIBS) 170 171 LDLIBS64 = -L$(ON_LIB_64) 172 LDLIBS64 += -L$(ON_USRLIB_64) 173 LDLIBS64 += -R$(OS_LIB_64) 174 LDLIBS64 += -R$(OS_USRLIB_64) 175 LDLIBS64 += $(LDLIBS) 176 177 DYNFLAGS += -norunpath 178 DYNFLAGS += -nolib 179 180 LINK32 = $(CCC) $(CCFLAGS32) -o $@ -G $(DYNFLAGS) $(MODULE_OBJ_32) $(LDLIBS32) 181 LINK64 = $(CCC) $(CCFLAGS64) -o $@ -G $(DYNFLAGS) $(MODULE_OBJ_64) $(LDLIBS64) 182 183 LINT_TARGETS = 184 185 lint: 186 @echo "This section uses C++ and does not support lint" 187 188 189 # SPEC STUFF 190 # Name of shared object to actually build 191 ABILNROOT = $(NAME:%.a=%) 192 193 SPECMAP32 = $(OBJ32)/mapfile 194 SPECMAP64 = $(OBJ64)/mapfile 195 196 VERSFILE = $(SPECS_DIR)/versions 197 198 SPECS = $(SPECS_DIR)/sun_fc.spec 199 SRCS = $(SPECS:$(SPECS_DIR)/%.spec=$(SRC_DIR)/%.c) 200 201 TRANSCPP = 202 TRANSFLAGS = -a $(MACH) 203 TRANSFLAGS += -l $(ABILNROOT) $(TRANSCPP) 204 TRANSFLAGS += -v $(VERSFILE) 205 206 CCFLAGS32 += -mt -Kpic 207 CCFLAGS32 += -D_POSIX_PTHREAD_SEMANTICS 208 209 CCFLAGS64 += -mt -Kpic 210 CCFLAGS64 += -D_POSIX_PTHREAD_SEMANTICS 211 212 sparc_C_PICFLAGS = -K pic 213 i386_C_PICFLAGS = -K pic 214 215 # Build time information for the API to report 216 BUILD_TIME = `date +%c` 217 CCFLAGS32 += -DBUILD_TIME="\"$(BUILD_TIME)\"" 218 CCFLAGS64 += -DBUILD_TIME="\"$(BUILD_TIME)\"" 219 220 # Handle creating our directories when needed 221 DIRS = $(OBJ32) 222 DIRS += $(OBJ64) 223 DIRS += $(ROOTABIDIR) 224 DIRS += $(STAGING32) 225 DIRS += $(STAGING64) 226 DIRS += $(PKGAREA) 227 228 ALLPREQ = $(OBJ32) 229 $(BUILD64)ALLPREQ += $(OBJ64) 230 ALLPREQ += .WAIT 231 ALLPREQ += $(SPECMAP32) 232 $(BUILD64)ALLPREQ += $(SPECMAP64) 233 ALLPREQ += $(BINARIES) 234 ALLPREQ += $(OBJ32)/$(LIBLINKS) 235 $(BUILD64)ALLPREQ += $(OBJ64)/$(LIBLINKS) 236 237 INSTALLPREQ = all 238 INSTALLPREQ += .WAIT 239 INSTALLPREQ += $(STAGING32) 240 $(BUILD64)INSTALLPREQ += $(STAGING64) 241 INSTALLPREQ += .WAIT 242 INSTALLPREQ += $(STAGING32)/$(MODULE) 243 $(BUILD64)INSTALLPREQ += $(STAGING64)/$(MODULE) 244 INSTALLPREQ += $(STAGING32)/$(LIBLINKS) 245 $(BUILD64)INSTALLPREQ += $(STAGING64)/$(LIBLINKS) 246 247 PKGPREQ = install 248 PKGPREQ += $(PKGAREA) 249 PKGPREQ += .WAIT 250 PKGPREQ += $(MODULE_PKGS:%=$(PKGAREA)/%) 251 252 CLEANFILES = $(MODULE_OBJ_32) 253 CLEANFILES += $(MODULE_OBJ_64) 254 255 CLOBBERFILES = 256 CLOBBERFILES += $(MOD_LINT_LIB) 257 258 NUKEFILES = $(CLOBBERFILES) 259 NUKEFILES += $(STAGING32)/$(MODULE) 260 NUKEFILES += $(STAGING32)/$(LIBLINKS) 261 NUKEFILES += $(STAGING64)/$(MODULE) 262 NUKEFILES += $(STAGING64)/$(LIBLINKS) 263 NUKEFILES += $(MODULE_PKGS:%=$(PKGAREA)/%) 264 265 include ../Makefile.common 266 267 $(MODULE_OBJ_64):= SPARC64_CFLAGS += -xregs=no%appl 268 $(MODULE_OBJ_64):= SPARC64_CFLAGS += $(sparc_C_PICFLAGS) 269 270 COMMON_INCLUDES += -I$(MOD_INC_HBAAPI) 271 COMMON_INCLUDES += -I$(MOD_INC_FCP) 272 COMMON_INCLUDES += -I$(MOD_INC_FCSM) 273 COMMON_INCLUDES += -I$(COM_INC_FC) 274 COMMON_INCLUDES += -I$(COMMON_FC_IMPL_HDRS_DIR) 275 COMMON_INCLUDES += -I$(COMMON_FC_IMPL_HDRS_DIR) 276 COMMON_INCLUDES += -I../comstar/hdrs 277 COMMON_INCLUDES += -Isrc 278 279 $(SPECMAP32) $(SPECMAP64): $(VERSFILE) $(SPECS) 280 /usr/lib/abi/spec2map -p $(TRANSFLAGS) -o $@ $(SPECS) 281 282 doc: 283 @mkdir -p $(CODEMGR_WS)/docs 284 @echo "Running doc++" 285 @(cd src; doc++ -d $(CODEMGR_WS)/docs/sun_fc *.cc *.h) 286 @echo "" 287 @echo "" 288 @echo "" 289 @echo "To view API documentation, point your browser at" 290 @echo "" 291 @echo "file://$(CODEMGR_WS)/docs/sun_fc/index.html" 292 @echo "" 293