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 #pragma ident "@(#)Makefile 1.2 08/07/01 SMI" 26 # 27 # src/sun_nws/sun_ima/Makefile 28 # 29 30 include ../Makefile.config 31 include ../Makefile.libs 32 33 NAME = libsun_ima.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 ETC = $(PROTO_ROOT)/etc 47 48 MODULE_PKGS = SUNWima 49 MODULE_PKGS += SUNWimar 50 51 MODULE_SRC = ima.c 52 53 MODULE_OBJ_32 = $(MODULE_SRC:%.c=$(OBJ32)/%.o) 54 MODULE_OBJ_64 = $(MODULE_SRC:%.c=$(OBJ64)/%.o) 55 56 BINARY32 = $(OBJ32)/$(MODULE) 57 $(BUILD64)BINARY64 = $(OBJ64)/$(MODULE) 58 BINARIES = $(BINARY32) $(BINARY64) 59 60 COMMON_INCLUDES = -I$(HDRS_DIR) 61 COMMON_INCLUDES += -I$(COM_INC_ISCSI) 62 COMMON_INCLUDES += -I$(COMMON_ISCSI_IMPL_HDRS_DIR) 63 COMMON_INCLUDES += -I$(COMMON_IMA_IMPL_HDRS_DIR) 64 65 LIBS = $(DYNLIB) 66 LFLAGS32 += -DSOLARIS 67 LFLAGS64 += -DSOLARIS 68 69 $(BINARY32):= DYNFLAGS += -M $(OBJ32)/mapfile 70 $(BINARY64):= DYNFLAGS += -M $(OBJ64)/mapfile 71 72 LDLIBS = -lc 73 LDLIBS += -lnsl 74 LDLIBS += -lsocket 75 LDLIBS += -ldevinfo 76 LDLIBS += -lsysevent 77 78 LDLIBS32 = -L$(ON_LIB_32) 79 LDLIBS32 += -L$(ON_USRLIB_32) 80 LDLIBS32 += -R$(OS_LIB_32) 81 LDLIBS32 += -R$(OS_USRLIB_32) 82 LDLIBS32 += $(LDLIBS) 83 84 LDLIBS64 = -L$(ON_LIB_64) 85 LDLIBS64 += -L$(ON_USRLIB_64) 86 LDLIBS64 += -R$(OS_LIB_64) 87 LDLIBS64 += -R$(OS_USRLIB_64) 88 LDLIBS64 += $(LDLIBS) 89 90 LINT_TARGETS = lib_lint32 91 $(BUILD64)LINT_TARGETS += .WAIT 92 $(BUILD64)LINT_TARGETS += lib_lint64 93 94 95 # SPEC STUFF 96 # Name of shared object to actually build 97 ABILNROOT = $(NAME:%.a=%) 98 99 SPECMAP32 = $(OBJ32)/mapfile 100 SPECMAP64 = $(OBJ64)/mapfile 101 102 VERSFILE = $(SPECS_DIR)/versions 103 104 SPECS = $(SPECS_DIR)/sun_ima.spec 105 SRCS = $(SPECS:$(SPECS_DIR)/%.spec=$(SRC_DIR)/%.c) 106 107 TRANSCPP = 108 TRANSFLAGS = -a $(MACH) 109 TRANSFLAGS += -l $(ABILNROOT) $(TRANSCPP) 110 TRANSFLAGS += -v $(VERSFILE) 111 112 CFLAGS32 += -mt 113 CFLAGS32 += -v 114 CFLAGS32 += -DSOLARIS 115 CFLAGS64 += -mt 116 CFLAGS64 += -v 117 CFLAGS64 += -DSOLARIS 118 119 sparc_C_PICFLAGS = -K pic 120 i386_C_PICFLAGS = -K pic 121 122 # Build time information for the API to report 123 BUILD_TIME = `date +%c` 124 CCFLAGS32 += -DBUILD_TIME="\"$(BUILD_TIME)\"" 125 CCFLAGS64 += -DBUILD_TIME="\"$(BUILD_TIME)\"" 126 127 # Handle creating our directories when needed 128 DIRS += $(ROOTABIDIR) 129 DIRS += $(ETC) 130 DIRS += $(H_DIR) 131 DIRS = $(OBJ32) 132 DIRS += $(OBJ64) 133 DIRS += $(ROOTABIDIR) 134 DIRS += $(STAGING32) 135 DIRS += $(STAGING64) 136 DIRS += $(PKGAREA) 137 138 ALLPREQ = $(OBJ32) 139 $(BUILD64)ALLPREQ += $(OBJ64) 140 ALLPREQ += $(SPECMAP32) 141 $(BUILD64)ALLPREQ += $(SPECMAP64) 142 ALLPREQ += $(BINARIES) 143 ALLPREQ += $(OBJ32)/$(LIBLINKS) 144 $(BUILD64)ALLPREQ += $(OBJ64)/$(LIBLINKS) 145 146 INSTALLPREQ = all 147 INSTALLPREQ += $(STAGING32) 148 $(BUILD64)INSTALLPREQ += $(STAGING64) 149 INSTALLPREQ += $(ETC) 150 #INSTALLPREQ += $(OPTSUNIMA) 151 INSTALLPREQ += $(H_DIR) 152 INSTALLPREQ += $(STAGING32)/$(MODULE) 153 INSTALLPREQ += $(STAGING32)/$(LIBLINKS) 154 $(BUILD64)INSTALLPREQ += $(STAGING64)/$(MODULE) 155 $(BUILD64)INSTALLPREQ += $(STAGING64)/$(LIBLINKS) 156 #INSTALLPREQ += $(ETC)/$(CONFFILE) 157 INSTALLPREQ += $(H_FILES:%=$(H_DIR)/%) 158 #INSTALLPREQ += $(OPTSUNIMA_FILES:%=$(OPTSUNIMA)/%) 159 160 PKGPREQ = install 161 PKGPREQ += $(PKGAREA) 162 PKGPREQ += .WAIT 163 PKGPREQ += $(MODULE_PKGS:%=$(PKGAREA)/%) 164 165 CLEANFILES = $(MODULE_OBJ_32) 166 CLEANFILES += $(MODULE_OBJ_64) 167 CLEANFILES += $(SPECMAP32) 168 CLEANFILES += $(SPECMAP64) 169 170 CLOBBERFILES = obj32 171 CLOBBERFILES += obj64 172 CLOBBERFILES += debug32 173 CLOBBERFILES += debug64 174 175 NUKEFILES = $(CLOBBERFILES) 176 NUKEFILES += $(STAGING32)/$(MODULE) 177 NUKEFILES += $(STAGING32)/$(LIBLINKS) 178 NUKEFILES += $(STAGING64)/$(MODULE) 179 NUKEFILES += $(STAGING64)/$(LIBLINKS) 180 #NUKEFILES += $(ETC)/$(CONFFILE) 181 NUKEFILES += $(H_FILES:%=$(H_DIR)/%) 182 #NUKEFILES += $(OPTSUNIMA_FILES:%=$(OPTSUNIMA)/%) 183 NUKEFILES += $(MODULE_PKGS:%=$(PKGAREA)/%) 184 185 include ../Makefile.common 186 187 $(MODULE_OBJ_64):= SPARC64_CFLAGS += -xregs=no%appl 188 $(MODULE_OBJ_64):= SPARC64_CFLAGS += $(sparc_C_PICFLAGS) 189 190 $(SPECMAP32) $(SPECMAP64): $(VERSFILE) $(SPECS) 191 /usr/lib/abi/spec2map -p $(TRANSFLAGS) -o $@ $(SPECS) 192 193