# $Id: Makefile,v 1.14 1993/10/16 09:49:17 kernel Exp kernel $

CC = cc
VERSION= 2.3
BIN_DIR = /usr/bin
ATJOB_DIR = /usr/spool/atjobs
ATSPOOL_DIR = /usr/spool/atspool
LOCKFILE = .lockfile
ATLIB_DIR = /usr/lib
PROC_DIR = /proc
MAIL_CMD = /bin/rmail
MAN_DIR = /usr/man
GROUP = cron
LOADAVG_MX = 1.5
CLONES=atq atrm batch
ATOBJECTS=at.o panic.o parsetime.o
RUNOBJECTS=atrun.o gloadavg.o

CFLAGS = -g -O -Wall -DATJOB_DIR=\"$(ATJOB_DIR)/\" -DPROC_DIR=\"$(PROC_DIR)/\" \
	-DMAIL_CMD=\"$(MAIL_CMD)\" -DLFILE=\"$(ATJOB_DIR)/$(LOCKFILE)\" \
	-DLOADAVG_MX=$(LOADAVG_MX) -DATSPOOL_DIR=\"$(ATSPOOL_DIR)\" \
	-DVERSION=\"$(VERSION)\"
CSRCS   = at.c atrun.c panic.c parsetime.c gloadavg.c
HEADERS = at.h         panic.h parsetime.h gloadavg.h
DIST = Makefile README COPYING Changelog at.1 atrun.8 $(CSRCS) $(HEADERS)

.PHONY: all install clean dist

all: at atrun

at: $(ATOBJECTS)
	$(CC) $(CFLAGS) -o at $(ATOBJECTS)
	rm -f $(CLONES)
	ln -fs at atq
	ln -fs at atrm
	ln -fs at batch

atrun: $(RUNOBJECTS)
	$(CC) $(CFLAGS) -o atrun $(RUNOBJECTS)

install: at atrun
	install -g $(GROUP) -o root -m 711 -d $(ATJOB_DIR)
	install -g $(GROUP) -o root -m 700 -d $(ATSPOOL_DIR)
	cat < /dev/null > $(ATJOB_DIR)/$(LOCKFILE)
	chmod 660 $(ATJOB_DIR)/$(LOCKFILE)
	chgrp $(GROUP) $(ATJOB_DIR)/$(LOCKFILE)
	install -g $(GROUP) -o root -m 4755 -s at $(BIN_DIR)
	ln -fs $(BIN_DIR)/at $(BIN_DIR)/batch
	ln -fs $(BIN_DIR)/at $(BIN_DIR)/atq
	ln -fs $(BIN_DIR)/at $(BIN_DIR)/atrm
	install -g bin -o root -m 755 -s atrun $(ATLIB_DIR)
	install -g bin -o root -m 755 -d $(MAN_DIR)/man1
	install -g bin -o root -m 644 at.1 $(MAN_DIR)/man1
	ln -fs $(MAN_DIR)/man1/at.1 $(MAN_DIR)/man1/batch.1
	ln -fs $(MAN_DIR)/man1/at.1 $(MAN_DIR)/man1/atrm.1
	ln -fs $(MAN_DIR)/man1/at.1 $(MAN_DIR)/man1/atq.1
	install -g bin -o root -m 755 -d $(MAN_DIR)/man8
	install -g bin -o root -m 644 atrun.8 $(MAN_DIR)/man8

dist: $(DIST)
	make clean
	(cd ..; tar cf - at-$(VERSION) | gzip -9 > at-$(VERSION).tgz )

clean:
	rm -f *.o *.s at atrun core *~ $(CLONES)

%.s: %.c
	$(CC) -S $(CFLAGS) $<

at.o : at.c at.h panic.h parsetime.h privs.h 
atrun.o : atrun.c gloadavg.h 
gloadavg.o : gloadavg.c gloadavg.h 
panic.o : panic.c panic.h at.h 
parsetime.o : parsetime.c at.h panic.h 
