Home | History | Annotate | Download | only in mpapi_svplugin
      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