Cross Reference: /illumos-gate/usr/src/cmd/sa/Makefile
Makefile revision 24fe0b3bf671e123467ce1df0b67cadd3614c8e4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# cmd/sa/Makefile
#
MANIFEST = sar.xml
SVCMETHOD = svc-sar
include ../Makefile.cmd
ROOTMANIFESTDIR = $(ROOTSVCSYSTEM)
GREP= grep
SADC= sadc
SADP= sadp
SAR= sar
TIMEX= timex
SAG= sag
SA1= sa1
SA2= sa2
sadc := LDLIBS += -lkstat
# Executables produced
BINPROG= $(TIMEX)
SBINPROG= $(SAR) $(SAG)
LIBPROG= $(SADC)
LIBSHELL= $(SA1) $(SA2)
INITSHELL= $(PERF)
PROGS= $(BINPROG) $(SBINPROG) $(LIBPROG)
SHELLS= $(LIBSHELL)
TXTS= $(SADP).c README
ALL= $(PROGS) $(SHELLS)
# Source files
SAG_OBJECTS= $(SAG)a.o $(SAG)b.o
SADC_OBJECTS= $(SADC).o
srcs= $(TIMEX) $(SAR) $(SADC)
SRCS= $(srcs:%=%.c) $(SAG_OBJECTS:%.o=%.c)
SHSRCS= $(SHELLS:%=%.sh)
# Set of target install directories
LIBSAD= $(ROOT)/usr/lib/sa
CROND= $(ROOT)/var/spool/cron
CRONTABSD= $(CROND)/crontabs
# Set of target install files
SYSCRONTAB= $(CRONTABSD)/sys
ROOTPROG= $(BINPROG:%=$(ROOTBIN)/%)
ROOTUSBINPROG= $(SBINPROG:%=$(ROOTUSRSBIN)/%)
ROOTLIBPROG= $(LIBPROG:%=$(LIBSAD)/%)
ROOTLIBSHELL= $(LIBSHELL:%=$(LIBSAD)/%)
ROOTSYMLINKS= $(SBINPROG:%=$(ROOTBIN)/%)
# Performance monitoring should not be enabled by default. Hence, these
# entries are comments. Note the difficulty of inserting a literal #
# in a makefile.... Wonderful parser here....
COMMENT_CHAR:sh= echo \\043
ENTRY1= '$(COMMENT_CHAR) 0 * * * 0-6 /usr/lib/sa/sa1'
ENTRY2= '$(COMMENT_CHAR) 20,40 8-17 * * 1-5 /usr/lib/sa/sa1'
ENTRY3= '$(COMMENT_CHAR) 5 18 * * 1-5 /usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 1200 -A'
CLOBBERFILES= $(PROGS) $(SHELLS)
# Conditionals
$(LIBSAD)/$(SADC) := FILEMODE = 0555
.KEEP_STATE:
all: $(ALL) $(TXTS)
$(SAG): $(SAG_OBJECTS)
$(LINK.c) -o $@ $(SAG_OBJECTS) $(LDLIBS)
$(POST_PROCESS)
$(SADC): $(SADC_OBJECTS)
$(LINK.c) -o $@ $(SADC_OBJECTS) $(LDLIBS)
$(POST_PROCESS)
# The edit of SYSCRONTAB must be done unconditionally because of the
# creation of this file by a different component (Adm) and the possible
# backdating.
install: all $(ROOTPROG) $(ROOTUSBINPROG) \
$(ROOTINITSHELL) $(ROOTLIBSHELL) $(ROOTSYMLINKS) \
$(ROOTMANIFEST) $(ROOTSVCMETHOD) $(ROOTLIBPROG)
@if [ -f $(SYSCRONTAB) ]; \
then \
if $(GREP) "sa1" $(SYSCRONTAB) >/dev/null 2>&1 ; then :; \
else \
echo $(ENTRY1) >> $(SYSCRONTAB); \
echo $(ENTRY2) >> $(SYSCRONTAB); \
echo "$(SYSCRONTAB) modified"; \
fi; \
if $(GREP) "sa2" $(SYSCRONTAB) >/dev/null 2>&1 ; then :; \
else \
echo $(ENTRY3) >> $(SYSCRONTAB); \
fi; \
fi
$(LIBSAD)/%: %
$(INS.file)
$(ROOTSYMLINKS):
-$(RM) $@; $(SYMLINK) ../sbin/`basename $@` $@
$(ETCINITD)/%: %
$(INS.file)
check: $(CHKMANIFEST)
clean:
$(RM) $(SAG_OBJECTS) $(SADC_OBJECTS) $(PROGS) $(SHELLS) $(SADP)
lint: lint_SRCS
include ../Makefile.targ