###############################################################################
#                                                                             #
#                          Network Job Control (NJC)                          #
#                                                                             #
#                               M A K E F I L E                               #
#                                   makefile                                  #
#                                                                             #
#                   Copyright (c) Joerg-R. Hill, April 1992                   #
#                                                                             #
#                                                                             #
###############################################################################

#
# Options set by getmachine
# OPT  = -O                    on IBM
# OPT  = -O2                   on IRIX and Linux
# DEFS =                       on IBM and IRIX
# DEFS = -DLINUX               on Linux
# CURSES = -lcurses            on IBM and IRIX
# CURSES = -lncurses           on Linux
# INST = .ibm                  on IBM
# INST = .irix                 on IRIX
# INST = .linux                on Linux
#

BAGGER =
CC     = cc -c $(OPT) $(BAGGER)

# Objects
QUEUEC      = checkpids.o error_msg.o queuec.o             startjob.o util.o xdr.o
QUEUED      = checkpids.o error_msg.o queued.o read_pids.o            util.o xdr.o
SUBMIT      = checkpids.o error_msg.o submit.o read_pids.o            util.o xdr.o

all: queuec queued submit ;

# Modules
checkpids.o   : checkpids.c queue.h    ; $(CC) checkpids.c
error_msg.o   : error_msg.c            ; $(CC) error_msg.c
queuec.o      : queuec.c queue.h       ; $(CC) $(DEFS) queuec.c
queued.o      : queued.c queue.h       ; $(CC) queued.c
read_pids.o   : read_pids.c queue.h    ; $(CC) $(DEFS) read_pids.c
startjob.o    : startjob.c queue.h     ; $(CC) $(DEFS) startjob.c
submit.o      : submit.c queue.h       ; $(CC) $(DEFS) submit.c
util.o        : util.c   queue.h       ; $(CC) util.c
xdr.o         : xdr.c    queue.h       ; $(CC) $(DEFS) xdr.c

# Programmes
queuec      : ; (/bin/sh getmachine; make queuec_; rm makefile)
queuec_     : $(QUEUEC)      ; cc $(BAGGER) $(QUEUEC) -o queuec$(INST)
queued      : ; (/bin/sh getmachine; make queued_; rm makefile)
queued_     : $(QUEUED)      ; cc $(BAGGER) $(QUEUED) -o queued$(INST)
submit      : ; (/bin/sh getmachine; make submit_; rm makefile)
submit_     : $(SUBMIT)      ;( cc $(BAGGER) $(SUBMIT) $(CURSES) -o submit$(INST); \
					  chmod a+x submit$(INST))

clean: ; rm -f checkpids.o error_msg.o queuec.o queued.o read_pids.o startjob.o \
               submit.o util.o xdr.o
tar  : ; (cd ..; tar -cvf njc.tar source man README LICENSE rmjob queue.cfg \
          queue.running queue.waiting submit.deny; gzip -9 njc.tar; \
          mv njc.tar.gz njc.tgz)
