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