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 usr/src/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 usr/src/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 2009 Sun Microsystems, Inc. All rights reserved. 23# Use is subject to license terms. 24# Copyright (c) 2013 Andrew Stormont. All rights reserved. 25# 26# cmd/sa/Makefile 27# 28 29MANIFEST = sar.xml 30SVCMETHOD = svc-sar 31 32include ../Makefile.cmd 33 34ROOTMANIFESTDIR = $(ROOTSVCSYSTEM) 35 36CERRWARN += -_gcc=-Wno-parentheses 37CERRWARN += -_gcc=-Wno-uninitialized 38 39GREP= grep 40 41SADC= sadc 42SAR= sar 43TIMEX= timex 44SA1= sa1 45SA2= sa2 46 47sadc := LDLIBS += -lkstat 48 49# Executables produced 50BINPROG= $(TIMEX) 51SBINPROG= $(SAR) 52LIBPROG= $(SADC) 53LIBSHELL= $(SA1) $(SA2) 54INITSHELL= $(PERF) 55 56PROGS= $(BINPROG) $(SBINPROG) $(LIBPROG) 57SHELLS= $(LIBSHELL) 58TXTS= README 59ALL= $(PROGS) $(SHELLS) 60 61# Source files 62SADC_OBJECTS= $(SADC).o 63srcs= $(TIMEX) $(SAR) $(SADC) 64SRCS= $(srcs:%=%.c) 65SHSRCS= $(SHELLS:%=%.sh) 66 67# Set of target install directories 68LIBSAD= $(ROOT)/usr/lib/sa 69CROND= $(ROOT)/var/spool/cron 70CRONTABSD= $(CROND)/crontabs 71 72# Set of target install files 73SYSCRONTAB= $(CRONTABSD)/sys 74ROOTPROG= $(BINPROG:%=$(ROOTBIN)/%) 75ROOTUSBINPROG= $(SBINPROG:%=$(ROOTUSRSBIN)/%) 76ROOTLIBPROG= $(LIBPROG:%=$(LIBSAD)/%) 77ROOTLIBSHELL= $(LIBSHELL:%=$(LIBSAD)/%) 78ROOTSYMLINKS= $(SBINPROG:%=$(ROOTBIN)/%) 79 80# Performance monitoring should not be enabled by default. Hence, these 81# entries are comments. 82ENTRY1= '$(POUND_SIGN) 0 * * * 0-6 /usr/lib/sa/sa1' 83ENTRY2= '$(POUND_SIGN) 20,40 8-17 * * 1-5 /usr/lib/sa/sa1' 84ENTRY3= '$(POUND_SIGN) 5 18 * * 1-5 /usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 1200 -A' 85 86CLOBBERFILES= $(PROGS) $(SHELLS) 87 88# Conditionals 89$(LIBSAD)/$(SADC) := FILEMODE = 0555 90 91.KEEP_STATE: 92 93all: $(ALL) $(TXTS) 94 95$(SADC): $(SADC_OBJECTS) 96 $(LINK.c) -o $@ $(SADC_OBJECTS) $(LDLIBS) 97 $(POST_PROCESS) 98 99# The edit of SYSCRONTAB must be done unconditionally because of the 100# creation of this file by a different component (Adm) and the possible 101# backdating. 102install: all $(ROOTPROG) $(ROOTUSBINPROG) \ 103 $(ROOTINITSHELL) $(ROOTLIBSHELL) $(ROOTSYMLINKS) \ 104 $(ROOTMANIFEST) $(ROOTSVCMETHOD) $(ROOTLIBPROG) 105 @if [ -f $(SYSCRONTAB) ]; \ 106 then \ 107 if $(GREP) "sa1" $(SYSCRONTAB) >/dev/null 2>&1 ; then :; \ 108 else \ 109 echo $(ENTRY1) >> $(SYSCRONTAB); \ 110 echo $(ENTRY2) >> $(SYSCRONTAB); \ 111 echo "$(SYSCRONTAB) modified"; \ 112 fi; \ 113 if $(GREP) "sa2" $(SYSCRONTAB) >/dev/null 2>&1 ; then :; \ 114 else \ 115 echo $(ENTRY3) >> $(SYSCRONTAB); \ 116 fi; \ 117 fi 118 119$(LIBSAD)/%: % 120 $(INS.file) 121 122$(ROOTSYMLINKS): 123 -$(RM) $@; $(SYMLINK) ../sbin/`basename $@` $@ 124 125$(ETCINITD)/%: % 126 $(INS.file) 127 128check: $(CHKMANIFEST) 129 130clean: 131 $(RM) $(SADC_OBJECTS) $(PROGS) $(SHELLS) 132 133lint: lint_SRCS 134 135include ../Makefile.targ 136