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