xref: /illumos-gate/usr/src/cmd/sa/Makefile (revision 8edd08a7913c626678965a9c38207aeb6b544013)
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