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.4 08/07/01 SMI" 26 # 27 # src/sun_nws/mpapi_svplugin/Makefile 28 # 29 30 include ../Makefile.config 31 include ../Makefile.libs 32 33 NAME = libmpscsi_vhci.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)/lib 43 sparc_STAGING64 = $(STAGING32)/sparcv9 44 i386_STAGING64 = $(STAGING32)/amd64 45 STAGING64 = $($(MACH)_STAGING64) 46 H_DIR = $(PROTO_ROOT)/usr/include 47 48 49 MODULE_PKGS = SUNWmpsvplr 50 51 MODULE_SRC = debug_logging.c 52 MODULE_SRC += mp_utils.c 53 MODULE_SRC += Initialize.c 54 MODULE_SRC += Terminate.c 55 MODULE_SRC += MP_GetPluginPropertiesPlugin.c 56 MODULE_SRC += MP_GetDeviceProductOidListPlugin.c 57 MODULE_SRC += MP_GetDeviceProductProperties.c 58 MODULE_SRC += MP_GetInitiatorPortOidListPlugin.c 59 MODULE_SRC += MP_GetInitiatorPortProperties.c 60 MODULE_SRC += MP_GetMultipathLusPlugin.c 61 MODULE_SRC += MP_GetMultipathLusDevProd.c 62 MODULE_SRC += MP_GetMPLogicalUnitProperties.c 63 MODULE_SRC += MP_GetAssociatedPathOidList.c 64 MODULE_SRC += MP_GetPathLogicalUnitProperties.c 65 MODULE_SRC += MP_GetAssociatedTPGOidList.c 66 MODULE_SRC += MP_GetTargetPortGroupProperties.c 67 MODULE_SRC += MP_GetMPLuOidListFromTPG.c 68 MODULE_SRC += MP_GetProprietaryLBOidListPlugin.c 69 MODULE_SRC += MP_GetProprietaryLBProp.c 70 MODULE_SRC += MP_GetTargetPortOidList.c 71 MODULE_SRC += MP_GetTargetPortProperties.c 72 MODULE_SRC += MP_AssignLogicalUnitToTPG.c 73 MODULE_SRC += MP_SetOverridePath.c 74 MODULE_SRC += MP_CancelOverridePath.c 75 MODULE_SRC += MP_EnableAutoFailbackPlugin.c 76 MODULE_SRC += MP_EnableAutoFailbackLu.c 77 MODULE_SRC += MP_EnableAutoProbingPlugin.c 78 MODULE_SRC += MP_EnableAutoProbingLu.c 79 MODULE_SRC += MP_DisableAutoFailbackPlugin.c 80 MODULE_SRC += MP_DisableAutoFailbackLu.c 81 MODULE_SRC += MP_DisableAutoProbingPlugin.c 82 MODULE_SRC += MP_DisableAutoProbingLu.c 83 MODULE_SRC += MP_EnablePath.c 84 MODULE_SRC += MP_DisablePath.c 85 MODULE_SRC += MP_SetLogicalUnitLoadBalanceType.c 86 MODULE_SRC += MP_SetPathWeight.c 87 MODULE_SRC += MP_SetPluginLBTypePlugin.c 88 MODULE_SRC += MP_SetFailbackPollingRatePlugin.c 89 MODULE_SRC += MP_SetFailbackPollingRateLu.c 90 MODULE_SRC += MP_SetProbingPollingRatePlugin.c 91 MODULE_SRC += MP_SetProbingPollingRateLu.c 92 MODULE_SRC += MP_SetProprietaryProperties.c 93 MODULE_SRC += MP_SetTPGAccess.c 94 MODULE_SRC += MP_RegForObjPropChangesPlugin.c 95 MODULE_SRC += MP_DeregForObjPropChangesPlugin.c 96 MODULE_SRC += MP_RegForObjVisChangesPlugin.c 97 MODULE_SRC += MP_DeregForObjVisChangesPlugin.c 98 MODULE_SRC += Sun_MP_SendScsiCmd.c 99 100 101 MODULE_OBJ_32 = $(MODULE_SRC:%.c=$(OBJ32)/%.o) 102 MODULE_OBJ_64 = $(MODULE_SRC:%.c=$(OBJ64)/%.o) 103 104 BINARY32 = $(OBJ32)/$(MODULE) 105 $(BUILD64)BINARY64 = $(OBJ64)/$(MODULE) 106 BINARIES = $(BINARY32) $(BINARY64) 107 108 109 LIBS = $(DYNLIB) 110 111 $(BINARY32):= DYNFLAGS += -M $(OBJ32)/mapfile 112 $(BINARY64):= DYNFLAGS += -M $(OBJ64)/mapfile 113 114 LDLIBS = -lc 115 LDLIBS += -ldevinfo 116 LDLIBS += -ldl 117 LDLIBS += -lpthread 118 LDLIBS += -lsysevent 119 LDLIBS += -lnvpair 120 121 LDLIBS32 = -L$(ON_LIB_32) 122 LDLIBS32 += -L$(ON_USRLIB_32) 123 LDLIBS32 += -R$(OS_LIB_32) 124 LDLIBS32 += -R$(OS_USRLIB_32) 125 LDLIBS32 += $(LDLIBS) 126 127 LDLIBS64 = -L$(ON_LIB_64) 128 LDLIBS64 += -L$(ON_USRLIB_64) 129 LDLIBS64 += -R$(OS_LIB_64) 130 LDLIBS64 += -R$(OS_USRLIB_64) 131 LDLIBS64 += $(LDLIBS) 132 133 LINT_TARGETS = lib_lint32 .WAIT lib_lint64 134 135 # SPEC STUFF 136 # Name of shared object to actually build 137 ABILNROOT = $(NAME:%.a=%) 138 139 SPECMAP32 = $(OBJ32)/mapfile 140 SPECMAP64 = $(OBJ64)/mapfile 141 142 VERSFILE = $(SPECS_DIR)/versions 143 144 SPECS = $(SPECS_DIR)/mpapi_svplugin.spec 145 SRCS = $(SPECS:$(SPECS_DIR)/%.spec=$(SRC_DIR)/%.c) 146 147 TRANSCPP = 148 TRANSFLAGS = -a $(MACH) 149 TRANSFLAGS += -l $(ABILNROOT) $(TRANSCPP) 150 TRANSFLAGS += -v $(VERSFILE) 151 152 CFLAGS32 += -mt 153 CFLAGS32 += -v 154 CFLAGS32 += -D_POSIX_PTHREAD_SEMANTICS 155 CFLAGS64 += -mt 156 CFLAGS64 += -v 157 CFLAGS64 += -D_POSIX_PTHREAD_SEMANTICS 158 159 # Build time information for the API to report 160 BUILD_TIME = `date +%c` 161 CFLAGS32 += -DBUILD_TIME="\"$(BUILD_TIME)\"" 162 CFLAGS64 += -DBUILD_TIME="\"$(BUILD_TIME)\"" 163 164 CFLAGS32 += $(MP_BUILD) 165 CFLAGS64 += $(MP_BUILD) 166 167 sparc_C_PICFLAGS = -K PIC 168 i386_C_PICFLAGS = -K pic 169 170 # Handle creating our directories when needed 171 DIRS = $(OBJ32) 172 DIRS += $(OBJ64) 173 DIRS += $(ROOTABIDIR) 174 DIRS += $(STAGING32) 175 DIRS += $(STAGING64) 176 DIRS += $(PKGAREA) 177 178 ALLPREQ = $(OBJ32) 179 ALLPREQ += $(OBJ64) 180 ALLPREQ += $(SPECMAP32) 181 ALLPREQ += $(SPECMAP64) 182 ALLPREQ += $(BINARIES) 183 ALLPREQ += $(OBJ32)/$(LIBLINKS) 184 ALLPREQ += $(OBJ64)/$(LIBLINKS) 185 186 INSTALLPREQ = all 187 INSTALLPREQ += .WAIT 188 INSTALLPREQ += $(STAGING32) 189 INSTALLPREQ += $(STAGING64) 190 INSTALLPREQ += .WAIT 191 INSTALLPREQ += $(STAGING32)/$(MODULE) 192 INSTALLPREQ += $(STAGING64)/$(MODULE) 193 INSTALLPREQ += $(STAGING32)/$(LIBLINKS) 194 INSTALLPREQ += $(STAGING64)/$(LIBLINKS) 195 196 PKGPREQ = install 197 PKGPREQ += $(PKGAREA) 198 PKGPREQ += .WAIT 199 PKGPREQ += $(MODULE_PKGS:%=$(PKGAREA)/%) 200 201 CLEANFILES = $(MODULE_OBJ_32) 202 CLEANFILES += $(MODULE_OBJ_64) 203 204 CLOBBERFILES = 205 CLOBBERFILES += obj32 206 CLOBBERFILES += obj64 207 CLOBBERFILES += debug32 208 CLOBBERFILES += debug64 209 CLOBBERFILES += $(MOD_LINT_LIB) 210 211 NUKEFILES = $(CLOBBERFILES) 212 NUKEFILES += $(STAGING32)/$(MODULE) 213 NUKEFILES += $(STAGING32)/$(LIBLINKS) 214 NUKEFILES += $(STAGING64)/$(MODULE) 215 NUKEFILES += $(STAGING64)/$(LIBLINKS) 216 NUKEFILES += $(MODULE_PKGS:%=$(PKGAREA)/%) 217 218 include ../Makefile.common 219 220 $(MODULE_OBJ_64):= SPARC64_CFLAGS += -xregs=no%appl 221 $(MODULE_OBJ_64):= SPARC64_CFLAGS += $(sparc_C_PICFLAGS) 222 223 COMMON_INCLUDES += -I../mpapi/hdrs 224 225 # Driver Team's Workspace 226 COMMON_INCLUDES += -I$(ON_REF_GATE)/usr/src/uts/common 227 228 229 $(SPECMAP32) $(SPECMAP64): $(VERSFILE) $(SPECS) 230 /usr/lib/abi/spec2map -p $(TRANSFLAGS) -o $@ $(SPECS) 231 232 doc: 233 @mkdir -p $(CODEMGR_WS)/docs 234 @echo "Running doc++" 235 @(cd src; doc++ -d $(CODEMGR_WS)/docs/mpapi_svplugin *.c *.h) 236 @echo "" 237 @echo "" 238 @echo "" 239 @echo "To view API documentation, point your browser at" 240 @echo "" 241 @echo "file://$(CODEMGR_WS)/docs/mpapi_svplugin/index.html" 242 @echo "" 243