10Sstevel@tonic-gate# 20Sstevel@tonic-gate# CDDL HEADER START 30Sstevel@tonic-gate# 40Sstevel@tonic-gate# The contents of this file are subject to the terms of the 51818Scf46844# Common Development and Distribution License (the "License"). 61818Scf46844# You may not use this file except in compliance with the License. 70Sstevel@tonic-gate# 80Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 90Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing. 100Sstevel@tonic-gate# See the License for the specific language governing permissions 110Sstevel@tonic-gate# and limitations under the License. 120Sstevel@tonic-gate# 130Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each 140Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 150Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the 160Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying 170Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner] 180Sstevel@tonic-gate# 190Sstevel@tonic-gate# CDDL HEADER END 200Sstevel@tonic-gate# 210Sstevel@tonic-gate# 22*10207SJames.McPherson@Sun.COM# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 230Sstevel@tonic-gate# Use is subject to license terms. 240Sstevel@tonic-gate# 250Sstevel@tonic-gate 2689SmeemDEFAULTFILES = cron.dfl 2789Smeem 280Sstevel@tonic-gateinclude ../Makefile.cmd 290Sstevel@tonic-gate 300Sstevel@tonic-gateMANIFEST = cron.xml 310Sstevel@tonic-gate 320Sstevel@tonic-gateROOTMANIFESTDIR = $(ROOTSVCSYSTEM) 330Sstevel@tonic-gateROOTMETHOD = $(ROOTLIBSVCMETHOD)/svc-cron 340Sstevel@tonic-gate 354774Sas145665CPPFLAGS += -D_FILE_OFFSET_BITS=64 -I $(SRC)/common/util 360Sstevel@tonic-gate 370Sstevel@tonic-gateROOTVAR = $(ROOT)/var 380Sstevel@tonic-gate 390Sstevel@tonic-gateROOTSPCRON = $(ROOTVAR)/spool/cron 400Sstevel@tonic-gateROOTCROND = $(ROOTETC)/cron.d 410Sstevel@tonic-gateROOTCRONTABS = $(ROOTSPCRON)/crontabs 420Sstevel@tonic-gateROOTATJOBS = $(ROOTSPCRON)/atjobs 430Sstevel@tonic-gateROOTLIBCRON = $(ROOTLIB)/cron 440Sstevel@tonic-gate 450Sstevel@tonic-gatePROG1 = cron 460Sstevel@tonic-gatePROG2 = at atq atrm crontab 471818Scf46844XPG6PROG = crontab 481818Scf46844XPG4PROG = at crontab 490Sstevel@tonic-gatePROG = $(PROG1) $(PROG2) 500Sstevel@tonic-gate 510Sstevel@tonic-gateSCRIPT = batch 520Sstevel@tonic-gateXPG4SCRIPT = batch.xpg4 530Sstevel@tonic-gate 540Sstevel@tonic-gatePOFILE= $(PROG1)_cmd.po 554774Sas145665POFILES1= at.po crontab.po funcs.po batch.po 564774Sas145665POFILES= $(POFILES1) atrm.po 574774Sas145665$(POFILES1) := XGETFLAGS= -a -x $(PROG1).xcl 580Sstevel@tonic-gate 5989SmeemROOTDIRS = $(ROOTSPCRON) $(ROOTCROND) \ 600Sstevel@tonic-gate $(ROOTCRONTABS) $(ROOTATJOBS) 610Sstevel@tonic-gate 620Sstevel@tonic-gateROOTPROG = $(PROG1:%=$(ROOTUSRSBIN)/%) $(PROG2:%=$(ROOTBIN)/%) \ 6389Smeem $(SCRIPT:%=$(ROOTBIN)/%) \ 641818Scf46844 $(XPG6PROG:%=$(ROOTXPG6BIN)/%) \ 650Sstevel@tonic-gate $(XPG4PROG:%=$(ROOTXPG4BIN)/%) \ 660Sstevel@tonic-gate $(XPG4SCRIPT:%.xpg4=$(ROOTXPG4BIN)/%) 670Sstevel@tonic-gate 680Sstevel@tonic-gateROOTSYMLINK = $(ROOTLIBCRON) $(ROOTETC)/cron 690Sstevel@tonic-gate 704774Sas145665GETRESPSRC= $(SRC)/common/util/getresponse.c 714774Sas145665GETRESPOBJ= getresponse.o 720Sstevel@tonic-gateCOMMONOBJ1= permit.o 730Sstevel@tonic-gateCOMMONOBJ2= funcs.o 740Sstevel@tonic-gateCOMMONOBJS= $(COMMONOBJ1) $(COMMONOBJ2) 750Sstevel@tonic-gateCRONOBJS= cron.o elm.o 760Sstevel@tonic-gateATOBJS= at.o att1.o att2.o 770Sstevel@tonic-gateXPG4OBJS= values-xpg4.o 784774Sas145665ATRMOBJS1= atrm.o 794774Sas145665ATRMOBJS= $(ATRMOBJS1) $(GETRESPOBJ) 800Sstevel@tonic-gateATQOBJS= atq.o 814774Sas145665CRONTABOBJS1= crontab.o 824774Sas145665CRONTABOBJS= $(CRONTABOBJS1) $(GETRESPOBJ) 830Sstevel@tonic-gate 841818Scf46844# /usr/xpg*/bin/crontab isn't linked with values-xpg*.o since it isn't 851818Scf46844# required by any specific behavior differences; this makes these 861818Scf46844# setuid variants less likely to accidently trip over differences that 871818Scf46844# could unintentionally open up a security hole. 881818Scf46844XPG4COMMONOBJS= $(COMMONOBJS:%=objs.xpg4/%) 891818Scf46844XPG4CTOBJS= $(CRONTABOBJS:%=objs.xpg4/%) 901818Scf46844XPG4ATOBJS= $(ATOBJS:%=objs.xpg4/%) $(XPG4OBJS:%=objs.xpg4/%) 911818Scf46844XPG6COMMONOBJS= $(COMMONOBJS:%=objs.xpg6/%) 921818Scf46844XPG6CTOBJS= $(CRONTABOBJS:%=objs.xpg6/%) 930Sstevel@tonic-gate 940Sstevel@tonic-gatecron := POBJS = $(CRONOBJS) $(COMMONOBJ2) 950Sstevel@tonic-gateat := POBJS = $(ATOBJS) $(COMMONOBJS) 961818Scf46844at.xpg4 := POBJS = $(XPG4ATOBJS) $(XPG4COMMONOBJS) 970Sstevel@tonic-gateatrm := POBJS = $(ATRMOBJS) $(COMMONOBJS) 980Sstevel@tonic-gateatq := POBJS = $(ATQOBJS) $(COMMONOBJS) 991818Scf46844crontab := POBJS = $(CRONTABOBJS) $(COMMONOBJS) 1001818Scf46844crontab.xpg4 := POBJS = $(XPG4CTOBJS) $(XPG4COMMONOBJS) 1011818Scf46844crontab.xpg6 := POBJS = $(XPG6CTOBJS) $(XPG6COMMONOBJS) 1020Sstevel@tonic-gate 1034774Sas145665CFLAGS += $(CCVERBOSE) 1041818Scf46844 1054774Sas145665NOBJS= $(CRONOBJS) $(ATOBJS) $(ATRMOBJS1) $(ATQOBJS) $(CRONTABOBJS1) \ 1060Sstevel@tonic-gate $(COMMONOBJS) 1071818Scf46844OBJS = $(NOBJS) $(XPG4COMMONOBJS) $(XPG4ATOBJS) $(XPG4CTOBJS) \ 1084774Sas145665 $(XPG6COMMONOBJS) $(XPG6CTOBJS) $(GETRESPOBJ) 109*10207SJames.McPherson@Sun.COM 1104774Sas145665SRCS = $(NOBJS:%.o=%.c) $(GETRESPSRC) 1110Sstevel@tonic-gate 1120Sstevel@tonic-gateCLOBBERFILES += $(SCRIPT) $(XPG4SCRIPT) 1130Sstevel@tonic-gate 1140Sstevel@tonic-gate$(ROOTLIBCRON) := SYMLNKDEST = ../../etc/cron.d 1150Sstevel@tonic-gate$(ROOTETC)/cron := SYMLNKDEST = ../usr/sbin/cron 1160Sstevel@tonic-gate 1170Sstevel@tonic-gate$(ROOTBIN)/at := FILEMODE = 04755 1180Sstevel@tonic-gate$(ROOTXPG4BIN)/at := FILEMODE = 04755 1190Sstevel@tonic-gate$(ROOTBIN)/atrm := FILEMODE = 04755 1200Sstevel@tonic-gate$(ROOTBIN)/atq := FILEMODE = 04755 1210Sstevel@tonic-gate$(ROOTBIN)/crontab := FILEMODE = 04555 1221818Scf46844$(ROOTXPG6BIN)/crontab := FILEMODE = 04555 1231818Scf46844$(ROOTXPG4BIN)/crontab := FILEMODE = 04555 1240Sstevel@tonic-gate$(ROOTUSRSBIN)/cron := FILEMODE = 0555 1250Sstevel@tonic-gate 1260Sstevel@tonic-gateLDLIBS += -lbsm 1270Sstevel@tonic-gate 1280Sstevel@tonic-gateat := LDLIBS += -lproject -lsecdb 1290Sstevel@tonic-gateat.xpg4 := LDLIBS += -lproject -lsecdb 1300Sstevel@tonic-gateatq := LDLIBS += -lsecdb 1310Sstevel@tonic-gateatrm := LDLIBS += -lsecdb 1328439SChris.Gerhard@sun.comcron := LDLIBS += -lpam -lproject -lcontract -lzoneinfo 1338439SChris.Gerhard@sun.comcrontab := LDLIBS += -lsecdb -lpam -lzoneinfo 1348439SChris.Gerhard@sun.comcrontab.xpg6 := LDLIBS += -lsecdb -lpam -lzoneinfo 1358439SChris.Gerhard@sun.comcrontab.xpg4 := LDLIBS += -lsecdb -lpam -lzoneinfo 1360Sstevel@tonic-gate 1370Sstevel@tonic-gatelint := LDLIBS += -lproject -lsecdb -lcontract -lpam 1380Sstevel@tonic-gate 1390Sstevel@tonic-gate$(XPG4) := CFLAGS += -DXPG4 1401818Scf46844$(XPG6) := CFLAGS += -DXPG6 1410Sstevel@tonic-gate 1424774Sas145665LINTFLAGS += -u 1434774Sas145665 1440Sstevel@tonic-gate$(ROOTSVCSYSTEM)/cron.xml := FILEMODE = 0444 1450Sstevel@tonic-gate$(ROOTLIBSVCMETHOD)/svc-cron := FILEMODE = 0555 1460Sstevel@tonic-gate 1470Sstevel@tonic-gate 1480Sstevel@tonic-gate.KEEP_STATE: 1490Sstevel@tonic-gate 1501818Scf46844all : $(PROG) $(XPG4) $(XPG6) $(SCRIPT) $(XPG4SCRIPT) $(FILES) 1510Sstevel@tonic-gate 15289Smeeminstall : all $(ROOTPROG) $(ROOTETCDEFAULTFILES) $(ROOTSYMLINK) \ 1530Sstevel@tonic-gate $(ROOTMANIFEST) $(ROOTMETHOD) 1540Sstevel@tonic-gate 1550Sstevel@tonic-gate$(PROG) : $$(POBJS) 1560Sstevel@tonic-gate $(LINK.c) $(POBJS) -o $@ $(LDLIBS) 1570Sstevel@tonic-gate $(POST_PROCESS) 1580Sstevel@tonic-gate 1591818Scf46844$(XPG4) : objs.xpg4 $$(POBJS) 1601818Scf46844 $(LINK.c) $(POBJS) -o $@ $(LDLIBS) 1611818Scf46844 $(POST_PROCESS) 1621818Scf46844 1631818Scf46844$(XPG6) : objs.xpg6 $$(POBJS) 1641818Scf46844 $(LINK.c) $(POBJS) -o $@ $(LDLIBS) 1650Sstevel@tonic-gate $(POST_PROCESS) 1660Sstevel@tonic-gate 1674774Sas145665objs.xpg6/%.o: %.c 1680Sstevel@tonic-gate $(COMPILE.c) -o $@ $< 1690Sstevel@tonic-gate 1701818Scf46844objs.xpg6: 1710Sstevel@tonic-gate -@mkdir -p $@ 1720Sstevel@tonic-gate 1734774Sas145665objs.xpg4/%.o: %.c 1741818Scf46844 $(COMPILE.c) -o $@ $< 1751818Scf46844 1761818Scf46844objs.xpg4: 1771818Scf46844 -@mkdir -p $@ 1781818Scf46844 1791818Scf46844objs.xpg4/values-xpg4.o: ../../lib/common/common/values-xpg4.c 1800Sstevel@tonic-gate $(COMPILE.c) -o $@ ../../lib/common/common/values-xpg4.c 1810Sstevel@tonic-gate 1824774Sas145665%.o: $(SRC)/common/util/%.c 1834774Sas145665 $(COMPILE.c) $(OUTPUT_OPTION) $< 1844774Sas145665 $(POST_PROCESS_O) 1854774Sas145665 1864774Sas145665objs.xpg4/%.o: $(SRC)/common/util/%.c 1874774Sas145665 $(COMPILE.c) -o $@ $< 1884774Sas145665 $(POST_PROCESS_O) 1894774Sas145665 1904774Sas145665objs.xpg6/%.o: $(SRC)/common/util/%.c 1914774Sas145665 $(COMPILE.c) -o $@ $< 1924774Sas145665 $(POST_PROCESS_O) 1934774Sas145665 1940Sstevel@tonic-gateatt1.c : att1.y 1950Sstevel@tonic-gate $(YACC.y) -d att1.y 1960Sstevel@tonic-gate $(MV) y.tab.c att1.c 1970Sstevel@tonic-gate $(MV) y.tab.h att1.h 1980Sstevel@tonic-gate 1990Sstevel@tonic-gateatt2.c : att2.l att2.ed att1.c 2000Sstevel@tonic-gate $(LEX) att2.l 2010Sstevel@tonic-gate ed - lex.yy.c < att2.ed 2020Sstevel@tonic-gate $(MV) lex.yy.c att2.c 2030Sstevel@tonic-gate 2041818Scf46844# Don't re-install directories installed by Targetdirs 2050Sstevel@tonic-gate#$(ROOTDIRS): 2060Sstevel@tonic-gate# $(INS.dir) 2070Sstevel@tonic-gate 2080Sstevel@tonic-gate$(ROOTSYMLINK) : 2090Sstevel@tonic-gate $(RM) $@; $(SYMLINK) $(SYMLNKDEST) $@ 2100Sstevel@tonic-gate 2110Sstevel@tonic-gatecheck: $(CHKMANIFEST) 2120Sstevel@tonic-gate 2130Sstevel@tonic-gate$(POFILE): $(POFILES) 2140Sstevel@tonic-gate $(RM) $@; cat $(POFILES) > $@ 2150Sstevel@tonic-gate 2160Sstevel@tonic-gateclean : 2170Sstevel@tonic-gate $(RM) $(OBJS) att1.h att1.c att2.c 2180Sstevel@tonic-gate 2190Sstevel@tonic-gatelint : lint_SRCS 2200Sstevel@tonic-gate 2210Sstevel@tonic-gatestrip : 2221818Scf46844 $(STRIP) $(PROG) $(XPG4) $(XPG6) 2230Sstevel@tonic-gate 2240Sstevel@tonic-gateinclude ../Makefile.targ 225