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 2015 Gary Mills 23 # Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24 # Use is subject to license terms. 25 # 26 # Copyright (c) 2018, Joyent, Inc. 27 28 PROG= acctcms acctcom acctcon acctcon1 acctcon2 \ 29 acctdisk acctdusg acctmerg accton acctprc acctprc1 \ 30 acctprc2 acctwtmp closewtmp fwtmp \ 31 wtmpfix utmp2wtmp 32 SHFILE1= acct chargefee ckpacct dodisk lastlogin\ 33 monacct nulladm prctmp prdaily prtacct \ 34 remove runacct shutacct startup turnacct 35 SHFILE2= ptecms.awk ptelus.awk 36 SUBDIRS= lib 37 ALL= $(PROG) $(SHFILE1) $(SHFILE2) holidays 38 39 SRCS= $(PROG:%=%.c) 40 SHFILE1SRCS= $(SHFILE1:%=%.sh) 41 42 BINPROG= acctcom 43 LIBPROG= 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 50 ETCPROG= holidays 51 INITPROG= acct 52 53 include ../Makefile.cmd 54 55 all:= TARGET= all 56 install:= TARGET= install 57 clean:= TARGET= clean 58 clobber:= TARGET= clobber 59 lint:= TARGET= lint 60 61 acctcom := LDLIBS += lib/a.a 62 acctcms acctcon acctcon1 acctmerg acctprc1 acctprc := LDLIBS += lib/a.a 63 64 acctdusg:= CPPFLAGS += -D_FILE_OFFSET_BITS=64 65 acctdusg:= LDLIBS += -lcmdutils 66 67 LIBACCTD= $(ROOTLIB)/acct 68 ETCACCTD= $(ROOTETC)/acct 69 ETCINITD= $(ROOTETC)/init.d 70 VARADMD= $(ROOT)/var/adm 71 ACCTDIR= $(VARADMD)/acct 72 ACCTSUBDIRS= $(ACCTDIR)/nite $(ACCTDIR)/fiscal $(ACCTDIR)/sum 73 WKDIRS= $(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. 77 DIRS= $(LIBACCTD) $(ETCACCTD) $(WKDIRS) 78 79 USRBINPROG= $(BINPROG:%=$(ROOTBIN)/%) 80 LIBACCTPROG= $(LIBPROG:%=$(LIBACCTD)/%) 81 ETCACCTPROG= $(ETCPROG:%=$(ETCACCTD)/%) 82 ETCINITPROG= $(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 CERRWARN += -_gcc=-Wno-implicit-function-declaration 92 CERRWARN += -_gcc=-Wno-parentheses 93 CERRWARN += -_gcc=-Wno-unused-variable 94 CERRWARN += -_gcc=-Wno-address 95 96 # not linted 97 SMATCH=off 98 99 .KEEP_STATE: 100 101 .PARALLEL: $(ALL) 102 103 all: $(SUBDIRS) .WAIT $(ALL) 104 105 install: all .WAIT $(DIRS) .WAIT $(USRBINPROG) $(LIBACCTPROG) $(ETCACCTPROG) \ 106 $(ETCINITPROG) 107 108 THIS_YEAR:sh= date +%Y 109 110 holidays: FRC 111 @if grep $(THIS_YEAR) holidays > /dev/null 2>&1;\ 112 then \ 113 :;\ 114 else \ 115 $(ECHO) "building holidays";\ 116 ( \ 117 $(ECHO) "* @(#)holidays\tJanuary 1, `date +%Y`";\ 118 $(ECHO) "*";\ 119 $(ECHO) "* Prime/Nonprime Table for UNIX Accounting System";\ 120 $(ECHO) "*";\ 121 $(ECHO) "* Curr\tPrime\tNon-Prime";\ 122 $(ECHO) "* Year\tStart\tStart";\ 123 $(ECHO) "*";\ 124 $(ECHO) " `date +%Y`\t0800\t1800";\ 125 $(ECHO) "*";\ 126 $(ECHO) "* only the first column (month/day) is significiant.";\ 127 $(ECHO) "*";\ 128 $(ECHO) "* month/day\tCompany";\ 129 $(ECHO) "* \t\tHoliday";\ 130 $(ECHO) "*";\ 131 $(ECHO) "1/1\t\tNew Years Day";\ 132 $(ECHO) "7/4\t\tIndep. Day";\ 133 $(ECHO) "12/25\t\tChristmas" ) > holidays;\ 134 fi 135 136 $(DIRS): 137 $(INS.dir) 138 139 $(LIBACCTD)/% : % 140 $(INS.file) 141 142 $(ETCACCTD)/% : % 143 $(INS.file) 144 145 $(ETCINITD)/% : % 146 $(INS.file) 147 148 $(SUBDIRS): FRC 149 @cd $@; pwd; $(MAKE) $(MFLAGS) $(TARGET) 150 151 FRC: 152 153 clean: $(SUBDIRS) 154 155 clobber: $(SUBDIRS) 156 $(RM) $(PROG) $(SHFILE1) holidays 157 158 lint: $(SUBDIRS) 159 $(LINT.c) $(SRCS)