xref: /illumos-gate/usr/src/cmd/acct/Makefile (revision 581cede61ac9c14d8d4ea452562a567189eead78)
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
91.KEEP_STATE:
92
93.PARALLEL: $(ALL)
94
95all: $(SUBDIRS) .WAIT $(ALL) $(TXTS)
96
97install: all .WAIT $(DIRS) .WAIT $(USRBINPROG) $(LIBACCTPROG) $(ETCACCTPROG) \
98	$(ETCINITPROG)
99
100THIS_YEAR:sh=	date +%Y
101
102holidays:	FRC
103	@if grep $(THIS_YEAR) holidays > /dev/null 2>&1;\
104	then \
105		:;\
106	else \
107		$(ECHO) "building holidays";\
108		( \
109		$(ECHO) "* @(#)holidays\tJanuary 1, `date +%Y`";\
110		$(ECHO) "*";\
111		$(ECHO) "* Prime/Nonprime Table for UNIX Accounting System";\
112		$(ECHO) "*";\
113		$(ECHO) "* Curr\tPrime\tNon-Prime";\
114		$(ECHO) "* Year\tStart\tStart";\
115		$(ECHO) "*";\
116		$(ECHO) "  `date +%Y`\t0800\t1800";\
117		$(ECHO) "*";\
118		$(ECHO) "* only the first column (month/day) is significiant.";\
119		$(ECHO) "*";\
120		$(ECHO) "* month/day\tCompany";\
121		$(ECHO) "* \t\tHoliday";\
122		$(ECHO) "*";\
123		$(ECHO) "1/1\t\tNew Years Day";\
124		$(ECHO) "7/4\t\tIndep. Day";\
125		$(ECHO) "12/25\t\tChristmas" ) > holidays;\
126	fi
127
128$(DIRS):
129	$(INS.dir)
130
131$(LIBACCTD)/% : %
132	$(INS.file)
133
134$(ETCACCTD)/% : %
135	$(INS.file)
136
137$(ETCINITD)/% : %
138	$(INS.file)
139
140$(SUBDIRS): FRC
141	@cd $@; pwd; $(MAKE) $(MFLAGS) $(TARGET)
142
143FRC:
144
145clean: $(SUBDIRS)
146
147clobber: $(SUBDIRS)
148	$(RM) $(PROG) $(SHFILE1) holidays
149
150lint:	$(SUBDIRS)
151	$(LINT.c) $(SRCS)
152