Home | History | Annotate | Download | only in libstmf
      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.2	08/07/01 SMI"
     26 #
     27 # src/sun_nws/stmfadm/Makefile
     28 #
     29 
     30 include ../Makefile.config
     31 include ../Makefile.libs
     32 
     33 NAME		 = libstmf.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 SEC_ATTRS	 = $(PROTO_ROOT)/etc/security
     43 XML_DIR		 = src/xml
     44 
     45 SVC_MANIFEST 	 = $(PROTO_ROOT)/var/svc/manifest/system
     46 STAGING32	 = $(PROTO_ROOT)/usr/lib
     47 sparc_STAGING64	 = $(STAGING32)/sparcv9
     48 i386_STAGING64	 = $(STAGING32)/amd64
     49 STAGING64	 = $($(MACH)_STAGING64)
     50 ETC		 = $(PROTO_ROOT)/etc
     51 H_DIR		 = $(PROTO_ROOT)/usr/include
     52 
     53 MODULE_SRC	 = stmf.c store.c
     54 
     55 MODULE_OBJ_32    = $(MODULE_SRC:%.c=$(OBJ32)/%.o)
     56 MODULE_OBJ_64    = $(MODULE_SRC:%.c=$(OBJ64)/%.o)
     57 
     58 CLASS_ACTIONS	+= $(ON_REF_GATE)/usr/src/pkgdefs/common_files/i.rbac
     59 CLASS_ACTIONS	+= $(ON_REF_GATE)/usr/src/pkgdefs/common_files/r.rbac
     60 
     61 BINARY32		= $(OBJ32)/$(MODULE)
     62 $(BUILD64)BINARY64	= $(OBJ64)/$(MODULE)
     63 BINARIES		= $(BINARY32) $(BINARY64)
     64 
     65 H_FILES		 = libstmf.h
     66 
     67 MAPDIR		= $(SRC_DIR)/../spec
     68 MAPFILE		= $(MAPDIR)/mapfile-vers
     69 
     70 DYNFLAGS	+= -M $(MAPFILE)
     71 
     72 COMMON_INCLUDES  = -I$(HDRS_DIR)
     73 COMMON_INCLUDES += -I$(COM_INC_STMF)
     74 
     75 LIBS		 = $(DYNLIB)
     76 LFLAGS32        += -DSOLARIS
     77 LFLAGS64        += -DSOLARIS
     78 
     79 LDLIBS		 = -lc
     80 LDLIBS		+= -lsysevent
     81 LDLIBS		+= -lscf
     82 LDLIBS		+= -lnvpair
     83 LDLIBS		+= -lpthread
     84 
     85 LDLIBS32	 = -L$(ON_LIB_32)
     86 LDLIBS32	+= -R$(OS_LIB_32)
     87 LDLIBS32	+= $(LDLIBS)
     88 
     89 LDLIBS64	 = -L$(ON_LIB_64)
     90 LDLIBS64	+= -R$(OS_LIB_64)
     91 LDLIBS64	+= $(LDLIBS)
     92 
     93 LINT_TARGETS             = lib_lint32
     94 $(BUILD64)LINT_TARGETS  += .WAIT
     95 $(BUILD64)LINT_TARGETS  += lib_lint64
     96 
     97 
     98 # SPEC STUFF
     99 # Name of shared object to actually build
    100 ABILNROOT	= $(NAME:%.a=%)
    101 
    102 
    103 VERSFILE	= $(SPECS_DIR)/versions
    104 
    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 DIRS	+= $(SVC_MANIFEST)
    138 DIRS	+= $(SEC_ATTRS)
    139 
    140 ALLPREQ 		 = $(OBJ32)
    141 $(BUILD64)ALLPREQ 	+= $(OBJ64)
    142 ALLPREQ			+= $(SPECMAP32)
    143 $(BUILD64)ALLPREQ	+= $(SPECMAP64)
    144 ALLPREQ 		+= $(BINARIES)
    145 ALLPREQ			+= $(OBJ32)/$(LIBLINKS)
    146 $(BUILD64)ALLPREQ	+= $(OBJ64)/$(LIBLINKS)
    147 
    148 INSTALLPREQ		= all
    149 INSTALLPREQ		+= $(STAGING32)
    150 $(BUILD64)INSTALLPREQ	+= $(STAGING64)
    151 INSTALLPREQ		+= $(ETC)
    152 INSTALLPREQ		+= $(H_DIR)
    153 INSTALLPREQ		+= $(STAGING32)/$(MODULE)
    154 INSTALLPREQ		+= $(STAGING32)/$(LIBLINKS)
    155 $(BUILD64)INSTALLPREQ	+= $(STAGING64)/$(MODULE)
    156 $(BUILD64)INSTALLPREQ	+= $(STAGING64)/$(LIBLINKS)
    157 INSTALLPREQ		+= $(H_FILES:%=$(H_DIR)/%)
    158 INSTALLPREQ		+= $(SEC_ATTRS)
    159 INSTALLPREQ		+= $(SEC_ATTRS)/prof_attr.libstmf
    160 INSTALLPREQ		+= $(SEC_ATTRS)/auth_attr.libstmf
    161 INSTALLPREQ		+= $(SVC_MANIFEST)
    162 INSTALLPREQ		+= $(H_FILES:%=$(H_DIR)/%)
    163 INSTALLPREQ		+= $(SVC_MANIFEST)/stmf.xml
    164 
    165 PKGPREQ		 = install
    166 PKGPREQ        	+= $(PKGAREA)
    167 PKGPREQ        	+= .WAIT
    168 PKGPREQ        	+= $(MODULE_PKGS:%=$(PKGAREA)/%)
    169 
    170 CLEANFILES       = $(MODULE_OBJ_32)
    171 CLEANFILES      += $(MODULE_OBJ_64)
    172 CLEANFILES      += $(SPECMAP32)
    173 CLEANFILES      += $(SPECMAP64)
    174 
    175 CLOBBERFILES  	 = obj32
    176 CLOBBERFILES    += obj64
    177 CLOBBERFILES    += debug32
    178 CLOBBERFILES    += debug64
    179 
    180 NUKEFILES  	 = $(CLOBBERFILES)
    181 NUKEFILES    	+= $(STAGING32)/$(MODULE)
    182 NUKEFILES    	+= $(STAGING32)/$(LIBLINKS)
    183 NUKEFILES    	+= $(STAGING64)/$(MODULE)
    184 NUKEFILES    	+= $(STAGING64)/$(LIBLINKS)
    185 NUKEFILES	+= $(H_FILES:%=$(H_DIR)/%)
    186 NUKEFILES	+= $(MODULE_PKGS:%=$(PKGAREA)/%)
    187 NUKEFILES  	+= $(SVC_MANIFEST)/stmf.xml
    188 
    189 include ../Makefile.common
    190 
    191 $(SEC_ATTRS)/auth_attr.libstmf: $(SRC_DIR)/auth_attr
    192 	$(RM) -f $(OBJ32)/auth_attr.libstmf
    193 	$(CP) $(SRC_DIR)/auth_attr $(OBJ32)/auth_attr.libstmf
    194 	$(INSTALL) -s -m 0644 -f $(SEC_ATTRS) $(OBJ32)/auth_attr.libstmf
    195 
    196 $(SEC_ATTRS)/prof_attr.libstmf: $(SRC_DIR)/prof_attr
    197 	$(RM) -f $(OBJ32)/prof_attr.libstmf
    198 	$(CP) $(SRC_DIR)/prof_attr $(OBJ32)/prof_attr.libstmf
    199 	$(INSTALL) -s -m 0644 -f $(SEC_ATTRS) $(OBJ32)/prof_attr.libstmf
    200 
    201 $(H_DIR)/%:	$(HDRS)/%
    202 	$(INSTALL) -s -m 0644 -f $(H_DIR) $<
    203 
    204 $(SVC_MANIFEST)/stmf.xml: $(XML_DIR)/stmf.xml
    205 	$(INSTALL) -s -m 0444 -f $(SVC_MANIFEST) $(XML_DIR)/stmf.xml
    206 
    207 $(MODULE_OBJ_64):= SPARC64_CFLAGS += -xregs=no%appl
    208 $(MODULE_OBJ_64):= SPARC64_CFLAGS += $(sparc_C_PICFLAGS)
    209