xref: /illumos-gate/usr/src/cmd/acct/Makefile (revision 7014882c6a3672fd0e5d60200af8643ae53c5928)
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
26PROG=		acctcms acctcom acctcon acctcon1 acctcon2 \
27		acctdisk acctdusg acctmerg accton acctprc acctprc1 \
28		acctprc2 acctwtmp closewtmp fwtmp \
29		wtmpfix utmp2wtmp
30SHFILE1=	acct chargefee ckpacct dodisk lastlogin\
31		monacct nulladm prctmp prdaily prtacct \
32		remove runacct shutacct startup turnacct
33SHFILE2=	ptecms.awk ptelus.awk
34SUBDIRS=	lib
35ALL=		$(PROG) $(SHFILE1) $(SHFILE2) holidays
36
37SRCS=		$(PROG:%=%.c)
38SHFILE1SRCS=	$(SHFILE1:%=%.sh)
39
40TXTS=		diskusg.c
41
42BINPROG=	acctcom
43LIBPROG=	acctcms acctcon acctcon1 acctcon2 acctdisk \
44		acctdusg acctmerg accton acctprc acctprc1 acctprc2 \
45		acctwtmp closewtmp fwtmp utmp2wtmp \
46		wtmpfix chargefee ckpacct dodisk monacct \
47		lastlogin nulladm prctmp prdaily prtacct \
48		remove runacct shutacct startup turnacct \
49		ptecms.awk ptelus.awk
50ETCPROG=	holidays
51INITPROG=	acct
52
53include		../Makefile.cmd
54
55all:=		TARGET= all
56install:=	TARGET= install
57clean:=		TARGET= clean
58clobber:=	TARGET= clobber
59lint:=		TARGET= lint
60
61acctcom := LDLIBS += lib/a.a
62acctcms acctcon acctcon1 acctmerg acctprc1 acctprc := LDLIBS += lib/a.a
63
64acctdusg:= CPPFLAGS += -D_FILE_OFFSET_BITS=64
65acctdusg:= LDLIBS += -lcmdutils
66
67LIBACCTD=	$(ROOTLIB)/acct
68ETCACCTD=	$(ROOTETC)/acct
69ETCINITD=	$(ROOTETC)/init.d
70VARADMD=	$(ROOT)/var/adm
71ACCTDIR=	$(VARADMD)/acct
72ACCTSUBDIRS=	$(ACCTDIR)/nite $(ACCTDIR)/fiscal $(ACCTDIR)/sum
73WKDIRS=		$(ACCTDIR) $(ACCTSUBDIRS)
74
75# DIRS is directories to create. $(ETCINITD) [aka: /etc/init.d] is created
76# in /usr/src/Targetdirs and hence should be assumed to exist.
77DIRS=		$(LIBACCTD) $(ETCACCTD) $(WKDIRS)
78
79USRBINPROG=	$(BINPROG:%=$(ROOTBIN)/%)
80LIBACCTPROG=	$(LIBPROG:%=$(LIBACCTD)/%)
81ETCACCTPROG=	$(ETCPROG:%=$(ETCACCTD)/%)
82ETCINITPROG=	$(INITPROG:%=$(ETCINITD)/%)
83
84$(LIBACCTD) :=		DIRMODE=	755
85$(ETCACCTD) :=		DIRMODE=	755
86$(WKDIRS) :=		DIRMODE=	775
87$(LIBACCTD)/accton :=	FILEMODE=	04755
88$(ETCINITPROG) :=	FILEMODE=	0744
89$(ETCACCTPROG) :=	FILEMODE=	0644
90
91CERRWARN +=	-_gcc=-Wno-implicit-function-declaration
92CERRWARN +=	-_gcc=-Wno-parentheses
93CERRWARN +=	-_gcc=-Wno-unused-variable
94CERRWARN +=	-_gcc=-Wno-address
95
96.KEEP_STATE:
97
98.PARALLEL: $(ALL)
99
100all: $(SUBDIRS) .WAIT $(ALL) $(TXTS)
101
102install: all .WAIT $(DIRS) .WAIT $(USRBINPROG) $(LIBACCTPROG) $(ETCACCTPROG) \
103	$(ETCINITPROG)
104
105THIS_YEAR:sh=	date +%Y
106
107holidays:	FRC
108	@if grep $(THIS_YEAR) holidays > /dev/null 2>&1;\
109	then \
110		:;\
111	else \
112		$(ECHO) "building holidays";\
113		( \
114		$(ECHO) "* @(#)holidays\tJanuary 1, `date +%Y`";\
115		$(ECHO) "*";\
116		$(ECHO) "* Prime/Nonprime Table for UNIX Accounting System";\
117		$(ECHO) "*";\
118		$(ECHO) "* Curr\tPrime\tNon-Prime";\
119		$(ECHO) "* Year\tStart\tStart";\
120		$(ECHO) "*";\
121		$(ECHO) "  `date +%Y`\t0800\t1800";\
122		$(ECHO) "*";\
123		$(ECHO) "* only the first column (month/day) is significiant.";\
124		$(ECHO) "*";\
125		$(ECHO) "* month/day\tCompany";\
126		$(ECHO) "* \t\tHoliday";\
127		$(ECHO) "*";\
128		$(ECHO) "1/1\t\tNew Years Day";\
129		$(ECHO) "7/4\t\tIndep. Day";\
130		$(ECHO) "12/25\t\tChristmas" ) > holidays;\
131	fi
132
133$(DIRS):
134	$(INS.dir)
135
136$(LIBACCTD)/% : %
137	$(INS.file)
138
139$(ETCACCTD)/% : %
140	$(INS.file)
141
142$(ETCINITD)/% : %
143	$(INS.file)
144
145$(SUBDIRS): FRC
146	@cd $@; pwd; $(MAKE) $(MFLAGS) $(TARGET)
147
148FRC:
149
150clean: $(SUBDIRS)
151
152clobber: $(SUBDIRS)
153	$(RM) $(PROG) $(SHFILE1) holidays
154
155lint:	$(SUBDIRS)
156	$(LINT.c) $(SRCS)
157