#   DMakefile for nullmodem.device
#

EXE         = devs:nullmodem.device

HDRS        = defs.h
REVHDR      = nullrev.h
PROTO       = protos.h

SRCS        = device.c cmd.c modem.c debug.c
REVSRCS     = init.c

DOCS        = NullModem.doc .Product-Info
TOOLS       = devinfo

OD          =

CC      = dcc
CFLAGS  = -mi -mD -mRR

LINK    = dlink
LFLAGS  =

# generic stuff
REVOBJS = $(REVSRCS:*.?:"$(OD)%1.o")
OBJS    = $(SRCS:*.?:"$(OD)%1.o")
BACKUP  = *.doc *.c *.a *.h DMakefile

all : $(TOOLS) $(EXE)

#   REVOBJS is linked before OBJS for a reason.. the first executable
#   location should return a -1, and we do that in init.c
#
$(EXE) : $(REVHDR) $(PROTO) $(OBJS) $(REVOBJS)
    $(LINK) $(LFLAGS) $(REVOBJS) $(OBJS) -o $(EXE)
    flush
    version nullmodem.device unit 9

$(PROTO) : $(SRCS) $(REVSRCS)
    mkproto $(SRCS) $(REVSRCS) to $(PROTO)

$(OBJS) $(REVOBJS) : $(SRCS) $(REVSRCS)
    $(CC) $(CFLAGS) -c %(right) -o %(left)

$(TOOLS) : $(TOOLS:*:"*.c")
    $(CC) %(right)

$(OBJS) $(REVOBJS) $(TOOLS) :: $(HDRS)

$(REVOBJS) : $(REVHDR)

$(REVHDR) : $(SRCS) $(REVSRCS)
    rx bumprev $(REVHDR)

version:
    rx bumprev $(REVHDR) version
    @delete $(OBJS) $(REVOBJS)

clean:
    @delete $(OBJS) $(REVOBJS) $(EXE) $(TOOLS)

backup:
    setenv `version devs:nullmodem.device file`
    lha a backup/nullmodem.${nullmodem}.lha $(BACKUP) >*
    unsetenv nullmodem

DIR = t:NullModem
DEST = Files:comms/misc/

release :
    delete $(DIR) all force quiet
    makedir $(DIR)
    copy $(DOCS) $(EXE) $(DIR)
    makedir $(DIR)/src
    copy DMakefile $(SRCS) $(REVSRCS) $(HDRS) $(REVHDR) $(PROTO) $(DIR)/src
    rx bumprelease
    lha a -r $(DEST)NM_`type .release`.LHA $(DIR)
    delete $(DIR) all force quiet
