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