#       Program:        nmake                      15 May 1989
#       Author:         Andrew H. Derbyshire
#                       108 Decatur St, Apt 9
#                       Arlington, MA 02174
#       Function:       Build UUPC/extended from source files
#       Processor:      Microsoft nmake
#       External files: MASM            (8088 Assembler)
#                       CL              (Microsoft C 6.0 compiler)
#                       LINK or         (MS-DOS Linker)
#                       Input source files.
#

# *--------------------------------------------------------------------*
# *     Note:   By default, this file generates code for 80286         *
# *             systems and above.  If you are generating              *
# *             UUPC/extended for a 8088 system, remove the /G2        *
# *             option from the CCOPT= line, below                     *
# *--------------------------------------------------------------------*


#       Our release number.  This is updated each time we ship it out to
#       some unsuspecting user, or sometimes when we do a major fix even
#       if we don't ship it out to the lusers.  ANY VERSION NOT DONE ON
#       kendra SHOULD BE TAGGED AS N.NNAm, WHERE N.NNA IS THE NUMBER
#       UUPC was shipped as, and 'm' any string to indentify your special
#       version.  Just upping the distributed version number will confuse
#       you AND me.

VERS = 1.11n

#       The memory model to be built.

MODEL   = S

#       Mode = P for protected (OS/2)
#       Mode = R for real (MS-DOS)

MODE    = P

#       Hard Drive letter, and directories on the hard drive to be used.
#       The link files are also affected by this parameter.

HD                = c:

SRC     = .
MAIL    = MAIL
UTIL    = UTIL
LIBX    = LIB
UUCICO  = UUCICO
OBJ     = obj
SBR     = sbr
PRODP   = \os2bin
PRODR   = \lib\uupc\bin
OS2ZIPV2 = $(SRC)\$(VERS)\uupcos22.zip
OS2ZIPV3 = $(SRC)\$(VERS)\uupcos23.zip

#       The names of various object files that we create.

TIMESTMP = $(OBJ)\timestmp.o

LIBXOBJ  = $(OBJ)\dater.o $(OBJ)\getopt.o $(OBJ)\hlib.o\
          $(OBJ)\hostable.o $(OBJ)\lib.o
COMMOBJ = $(OBJ)\arpadate.o $(OBJ)\expath.o $(OBJ)\pushpop.o\
          $(OBJ)\usertabl.o $(TIMESTMP)

MAILCOMOBJ = $(OBJ)\mail.o $(OBJ)\address.o $(OBJ)\mailblib.o\
          $(OBJ)\maillib.o $(OBJ)\mailsend.o \
          $(OBJ)\alias.o $(OBJ)\stater.o

MAILROBJ  = $(MAILCOMOBJ) $(OBJ)\mlib.o
MAILPOBJ  = $(MAILCOMOBJ) $(OBJ)\mlib2.o

UUCPCOMOBJ = $(OBJ)\arbmath.o $(OBJ)\address.o $(OBJ)\expath.o\
             $(OBJ)\getseq.o $(OBJ)\import.o $(OBJ)\usertabl.o\
             $(OBJ)\uucp.o $(TIMESTMP)

UUCPPOBJ  = $(UUCPCOMOBJ) $(OBJ)\ndiros2.o
UUCPROBJ  = $(UUCPCOMOBJ) $(OBJ)\ndir.o

RNEWSOBJ = $(OBJ)\dater.o $(OBJ)\hlib.o $(OBJ)\lib.o $(OBJ)\rnews.o\
           $(TIMESTMP)

RMAILCOMOBJ = $(OBJ)\arbmath.o $(OBJ)\address.o $(OBJ)\getseq.o\
           $(OBJ)\import.o $(OBJ)\rmail.o

RMAILPOBJ  = $(RMAILCOMOBJ) $(OBJ)\deliver2.o $(OBJ)\ssleep2.o
RMAILROBJ  = $(RMAILCOMOBJ) $(OBJ)\deliver.o $(OBJ)\ssleep.o

UUCICOOBJ1 = $(OBJ)\checktim.o $(OBJ)\dcp.o $(OBJ)\dcpfpkt.o $(OBJ)\dcpgpkt.o\
             $(OBJ)\dcplib.o $(OBJ)\dcpstats.o $(OBJ)\dcpsys.o\
             $(OBJ)\dcpxfer.o $(OBJ)\hostatus.o
UUCICOOBJ2 = $(OBJ)\arbmath.o $(OBJ)\import.o $(OBJ)\modem.o\
             $(OBJ)\script.o $(OBJ)\security.o $(OBJ)\uucico.o
UUCICOPOBJ3 = $(OBJ)\ndiros2.o $(OBJ)\nbstime2.o $(OBJ)\ssleep2.o\
              $(OBJ)\ulibos2.o
UUCICOROBJ3 = $(OBJ)\ndir.o $(OBJ)\nbstime.o $(OBJ)\ssleep.o\
              $(OBJ)\ulib.o $(OBJ)\comm.o

UUSUBOBJ = $(OBJ)\hostatus.o $(OBJ)\uusub.o $(TIMESTMP)

UUSTATCOMMOBJ = $(OBJ)\arbmath.o $(OBJ)\getseq.o $(OBJ)\export.o\
            $(OBJ)\hostatus.o $(OBJ)\import.o $(OBJ)\stater.o\
            $(OBJ)\pushpop.o $(OBJ)\readnext.o $(OBJ)\uustat.o $(TIMESTMP)

UUSTATPOBJ = $(OBJ)\ndiros2.o $(UUSTATCOMMOBJ)
UUSTATROBJ = $(OBJ)\ndir.o $(UUSTATCOMMOBJ)

UUXQTCOMMOBJ = $(OBJ)\arbmath.o $(OBJ)\getseq.o $(OBJ)\import.o\
             $(OBJ)\readnext.o $(OBJ)\security.o \
             $(OBJ)\uuxqt.o

UUXQTPOBJ = $(OBJ)\ndiros2.o $(UUXQTCOMMOBJ)
UUXQTROBJ = $(OBJ)\ndir.o $(UUXQTCOMMOBJ)

UUXOBJ = $(OBJ)\uux.o $(OBJ)\arbmath.o $(OBJ)\getseq.o \
         $(OBJ)\hostatus.o $(OBJ)\import.o $(OBJ)\pushpop.o\
         $(OBJ)\expath.o  $(OBJ)\usertabl.o $(TIMESTMP)

POLLPOBJ  = $(OBJ)\getopt.o $(OBJ)\ssleep2.o $(OBJ)\uupoll2.o $(TIMESTMP)
POLLROBJ  = $(OBJ)\getopt.o $(OBJ)\ssleep.o $(OBJ)\uupoll.o $(TIMESTMP)

EXECR   = mailr.exe rmailr.exe rnewsr.exe\
          uupollr.exe uucicor.exe uucpr.exe\
          uusubr.exe uustatr.exe uuxqtr.exe uuxr.exe
EXECP   = mailp.exe rmailp.exe rnewsp.exe\
          uupollp.exe uucicop.exe uucpp.exe\
          uusubp.exe uustatp.exe uuxqtp.exe uuxp.exe
ICONS   = $(PRODP)\mail.ico $(PRODP)\uucico.ico
INSTALL2 = $(PRODP)\mail.exe $(PRODP)\rmail.exe $(PRODP)\uucico.exe\
          $(PRODP)\uuxqt.exe
INSTALL3 = $(PRODP)\rnews.exe $(PRODP)\uupoll.exe $(PRODP)\uucp.exe\
          $(PRODP)\uusub.exe $(PRODP)\uustat.exe $(PRODP)\uux.exe $(ICONS)
INSTALLP = $(INSTALL2) $(INSTALL3)
INSTALLR = $(PRODR)\mail.exe $(PRODR)\rmail.exe $(PRODR)\rnews.exe\
          $(PRODR)\uupoll.exe $(PRODR)\uucico.exe $(PRODR)\uucp.exe\
          $(PRODR)\uusub.exe $(PRODR)\uuxqt.exe $(PRODR)\uux.exe\
          $(PRODR)\uustat.exe

SBRS =  $(SBR)\address.sbr \
        $(SBR)\alias.sbr \
        $(SBR)\arbmath.sbr \
        $(SBR)\arpadate.sbr \
        $(SBR)\checktim.sbr \
        $(SBR)\dater.sbr \
        $(SBR)\dcp.sbr \
        $(SBR)\dcpfpkt.sbr \
        $(SBR)\dcpgpkt.sbr \
        $(SBR)\dcplib.sbr \
        $(SBR)\dcpstats.sbr \
        $(SBR)\dcpsys.sbr \
        $(SBR)\dcpxfer.sbr \
        $(SBR)\deliver.sbr \
        $(SBR)\deliver2.sbr \
        $(SBR)\expath.sbr \
        $(SBR)\export.sbr \
        $(SBR)\getopt.sbr \
        $(SBR)\getseq.sbr \
        $(SBR)\hlib.sbr \
        $(SBR)\hostable.sbr \
        $(SBR)\hostatus.sbr \
        $(SBR)\import.sbr \
        $(SBR)\lib.sbr \
        $(SBR)\mail.sbr \
        $(SBR)\mailblib.sbr \
        $(SBR)\maillib.sbr \
        $(SBR)\mailsend.sbr \
        $(SBR)\mlib.sbr \
        $(SBR)\modem.sbr \
        $(SBR)\nbstime.sbr \
        $(SBR)\nbstime2.sbr \
        $(SBR)\ndir.sbr \
        $(SBR)\ndiros2.sbr \
        $(SBR)\pushpop.sbr \
        $(SBR)\readnext.sbr \
        $(SBR)\rmail.sbr \
        $(SBR)\rnews.sbr \
        $(SBR)\script.sbr \
        $(SBR)\security.sbr \
        $(SBR)\ssleep.sbr \
        $(SBR)\ssleep2.sbr \
        $(SBR)\timestmp.sbr \
        $(SBR)\ulib.sbr \
        $(SBR)\ulibos2.sbr \
        $(SBR)\usertabl.sbr \
        $(SBR)\uucico.sbr \
        $(SBR)\uucp.sbr \
        $(SBR)\uupoll.sbr \
        $(SBR)\uupoll2.sbr \
        $(SBR)\uustat.sbr \
        $(SBR)\uusub.sbr \
        $(SBR)\uuxqt.sbr

MAKEFILE = $(SRC)\nmake

PKSFX   = $(PRODR)\pksfx.prg

#       Various Program names and their options

#       Define the linker used and the options related to it.

LINKER  = link
#LINKPOPT  = /pm:vio /co /batch /far /noignorecase /stack:20000
LINKPOPT = /pm:vio /exepack /batch /far /noignorecase /stack:20000
LINKROPT = /exepack /batch /far /noignorecase /stack:20000

MASM    = masm.exe

MASMOPT= /n /p /v /t /z /Mx

#       Suffix of file names used for linking; required for different
#       C models. (Add /Zi for Codeview)

CC      = cl
#CCOPT   = /EM /I$(LIBX) /A$(MODEL) /c /W4 /Od /nologo /G2 /Fo$@ /FR$(SBR)\$(@B).sbr
CCOPT   = /EM /I$(LIBX) /A$(MODEL) /c /W4 /Od /nologo /G2 /Fo$@ /FR$(SBR)\$(@B).sbr /Zi

ZIP     = pkzip


#
#       Begin rules for building modules.
#
#       The first definition is the one built by default.
#

#       test builds the basic UUPC modules in the source directory.
#       it also causes the source browser database to be generated.

testP:  mailp.exe rmailp.exe rnewsp.exe uucicop.exe uupollp.exe uucpp.exe\
        uusubp.exe uustatp.exe uuxp.exe uuxqtp.exe

testR:  mailr.exe rmailr.exe rnewsr.exe uucicor.exe uupollr.exe uucpr.exe\
        uusubr.exe uustatr.exe uuxr.exe uuxqtr.exe

#       Prod build the basic modules and then moves them to $(PROD)

prodp:  $(INSTALLP)

prodr:  $(INSTALLR)

installp:  $(INSTALLP) $(OS2ZIPV2) $(OS2ZIPV3)

installr:       $(INSTALLR)

#       install builds the UUPC modules, installs the executables
#       in the production directory, formats the documentation files,
#       and creates PKZIP files for giving away.

install: $(INSTALL) $(OS2ZIPV2) $(OS2ZIPV3)
        @echo Installed Microsoft UUPC

zip:    $(OS2ZIPV2) $(OS2ZIPV3)

#       Do a purge of various temporary output files.

clean:  xclean
        - del $(SRC)\*.bak
        - del *.map

#       Do a clean of just executable files and related files.

xclean:
        - del $(OBJ)\*.o
        - del $(OBJ)\*.exe
        - del $(SRC)\*.o
        - del $(SRC)\*.exe

#       The production copies of executables follow.

$(PRODR)\mail.exe: mailr.exe
        - del $@
        move $? $@

$(PRODR)\rmail.exe: rmailr.exe
        - del $@
        move $? $@

$(PRODR)\rnews.exe: rnewsr.exe
        - del $@
        move $? $@

$(PRODR)\uucp.exe: uucpr.exe
        - del $@
        move $? $@

$(PRODR)\uucico.exe: uucicor.exe
        - del $@
        move $? $@

$(PRODR)\uupoll.exe: uupollr.exe
        - del $@
        move $? $@

$(PRODR)\uusub.exe: uusubr.exe
        - del $@
        move $? $@

$(PRODR)\uustat.exe: uustatr.exe
        - del $@
        move $? $@

$(PRODR)\uuxqt.exe: uuxqtr.exe
        - del $@
        move $? $@

$(PRODR)\uux.exe: uuxr.exe
        - del $@
        move $? $@

$(PRODP)\mail.exe: mailp.exe
        - del $@
        move $? $@

$(PRODP)\rmail.exe: rmailp.exe
        - del $@
        move $? $@

$(PRODP)\rnews.exe: rnewsp.exe
        - del $@
        move $? $@

$(PRODP)\uucp.exe: uucpp.exe
        - del $@
        move $? $@

$(PRODP)\uucico.exe: uucicop.exe
        - del $@
        move $? $@

$(PRODP)\uupoll.exe: uupollp.exe
        - del $@
        move $? $@

$(PRODP)\uusub.exe: uusubp.exe
        - del $@
        move $? $@

$(PRODP)\uustat.exe: uustatp.exe
        - del $@
        move $? $@

$(PRODP)\uuxqt.exe: uuxqtp.exe
        - del $@
        move $? $@

$(PRODP)\uux.exe: uuxp.exe
        - del $@
        move $? $@

mailp.exe:     $(MAILPOBJ) $(COMMOBJ) $(LIBXOBJ)
        $(LINKER) $(LINKPOPT) @<<
$(MAILPOBJ)+
$(LIBXOBJ)+
$(COMMOBJ)
$@
nul,
$(MODEL)libcep+os2;
<<

mailr.exe:     $(MAILROBJ) $(COMMOBJ) $(LIBXOBJ)
        $(LINKER) $(LINKROPT) @<<
$(MAILROBJ)+
$(LIBXOBJ)+
$(COMMOBJ)
$@
nul,
$(MODEL)libcer;
<<

rmailp.exe:     $(RMAILPOBJ) $(COMMOBJ) $(LIBXOBJ)
        $(LINKER) $(LINKPOPT) @<<
$(RMAILPOBJ)+
$(LIBXOBJ)+
$(COMMOBJ)
$@
nul,
$(MODEL)libcep+os2;
<<

rmailr.exe:     $(RMAILROBJ) $(COMMOBJ) $(LIBXOBJ)
        $(LINKER) $(LINKROPT) @<<
$(RMAILROBJ)+
$(LIBXOBJ)+
$(COMMOBJ)
$@
nul,
slibcer;
<<

uucpp.exe:     $(UUCPPOBJ) $(LIBXOBJ)
        $(LINKER) $(LINKPOPT) @<<
$(LIBXOBJ)+
$(UUCPPOBJ)
$@
nul,
$(MODEL)libcep+os2;
<<

uucpr.exe:     $(UUCPROBJ) $(LIBXOBJ)
        $(LINKER) $(LINKROPT) @<<
$(LIBXOBJ)+
$(UUCPROBJ)
$@
nul,
$(MODEL)libcer;
<<

rnewsp.exe:     $(RNEWSOBJ)
        $(LINKER) $(LINKPOPT) @<<
$(RNEWSOBJ)
$@
nul,
$(MODEL)libcep+os2;
<<

rnewsr.exe:     $(RNEWSOBJ)
        $(LINKER) $(LINKROPT) @<<
$(RNEWSOBJ)
$@
nul,
$(MODEL)libcer+os2;
<<

uucicop.exe:     $(UUCICOOBJ1) $(UUCICOOBJ2) $(UUCICOPOBJ3) $(COMMOBJ)\
                 $(LIBXOBJ)
        $(LINKER) $(LINKPOPT) @<<
$(UUCICOOBJ1)+
$(UUCICOOBJ2)+
$(UUCICOPOBJ3)+
$(LIBXOBJ)+
$(COMMOBJ)
$@
nul,
$(MODEL)libcep+os2;
<<

uucicor.exe:     $(UUCICOOBJ1) $(UUCICOOBJ2) $(UUCICOROBJ3) $(COMMOBJ) $(LIBXOBJ)
        $(LINKER) $(LINKROPT) @<<
$(UUCICOOBJ1)+
$(UUCICOOBJ2)+
$(UUCICOROBJ3)+
$(LIBXOBJ)+
$(COMMOBJ)
$@
nul,
$(MODEL)libcer;
<<

uupollp.exe:      $(POLLPOBJ)
        $(LINKER) $(LINKPOPT) @<<
$(POLLPOBJ)
$@
nul,
$(MODEL)libcep+os2;
<<

uupollr.exe:      $(POLLROBJ)
        $(LINKER) $(LINKROPT) @<<
$(POLLROBJ)
$@
nul,
$(MODEL)libcer;
<<

uusubp.exe:      $(UUSUBOBJ) $(LIBXOBJ)
        $(LINKER) $(LINKPOPT) @<<
$(LIBXOBJ)+
$(UUSUBOBJ)
$@
nul,
$(MODEL)libcep+os2;
<<

uuxqtp.exe:      $(UUXQTPOBJ) $(LIBXOBJ) $(COMMOBJ)
        $(LINKER) $(LINKPOPT) @<<
$(LIBXOBJ)+
$(COMMOBJ)+
$(UUXQTPOBJ)
$@
nul,
$(MODEL)libcep+os2;
<<

uuxp.exe:      $(UUXOBJ) $(LIBXOBJ)
        $(LINKER) $(LINKPOPT) @<<
$(LIBXOBJ)+
$(UUXOBJ)
$@
nul,
$(MODEL)libcep+os2;
<<

uustatp.exe:      $(UUSTATPOBJ) $(LIBXOBJ)
        $(LINKER) $(LINKPOPT) @<<
$(LIBXOBJ)+
$(UUSTATPOBJ)
$@
nul,
$(MODEL)libcep+os2;
<<

uusubr.exe:      $(UUSUBOBJ) $(LIBXOBJ)
        $(LINKER) $(LINKROPT) @<<
$(LIBXOBJ)+
$(UUSUBOBJ)
$@
nul,
$(MODEL)libcer;
<<

uuxqtr.exe:      $(UUXQTROBJ) $(LIBXOBJ) $(COMMOBJ)
        $(LINKER) $(LINKROPT) @<<
$(LIBXOBJ)+
$(COMMOBJ)+
$(UUXQTROBJ)
$@
nul,
$(MODEL)libcer;
<<

uuxr.exe:      $(UUXOBJ) $(LIBXOBJ)
        $(LINKER) $(LINKROPT) @<<
$(LIBXOBJ)+
$(UUXOBJ)
$@
nul,
$(MODEL)libcer;
<<

uustatr.exe:      $(UUSTATROBJ) $(LIBXOBJ)
        $(LINKER) $(LINKROPT) @<<
$(LIBXOBJ)+
$(UUSTATROBJ)
$@
nul,
$(MODEL)libcer;
<<

$(OS2ZIPV2):  $(INSTALL2)
       - mkdir $(SRC)\$(VERS)
       ! -12 $(ZIP) -o- -u $@ $?
       $(ZIP) -z $@ < <<
Kendra Electronic Wonderworks: UUPC/extended $(VERS) OS/2 required executable files
<<

$(OS2ZIPV3):  $(INSTALL3)
       - mkdir $(SRC)\$(VERS)
       ! -12 $(ZIP) -o- -u $@ $?
       $(ZIP) -z $@ < <<
Kendra Electronic Wonderworks: UUPC/extended $(VERS) OS/2 optional executable files
<<

#       Compile the various object files.

$(OBJ)\address.o: $(MAIL)\address.c $(LIBX)\lib.h $(LIBX)\hostable.h $(LIBX)\security.h\
        $(MAIL)\address.h
        $(CC) $(CCOPT) $(MAIL)\$(@B).c

$(OBJ)\alias.o: $(MAIL)\alias.c $(LIBX)\lib.h $(LIBX)\hostable.h $(LIBX)\security.h\
        $(LIBX)\hlib.h $(MAIL)\alias.h $(MAIL)\address.h
        $(CC) $(CCOPT) $(MAIL)\$(@B).c

$(OBJ)\arbmath.o: $(LIBX)\arbmath.c $(LIBX)\lib.h $(LIBX)\arbmath.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\arpadate.o: $(LIBX)\arpadate.c $(LIBX)\lib.h $(LIBX)\arpadate.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\checktim.o: $(UUCICO)\checktim.c $(LIBX)\lib.h $(UUCICO)\checktim.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\dater.o: $(LIBX)\dater.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\dcp.o: $(UUCICO)\dcp.c $(LIBX)\lib.h $(LIBX)\hlib.h\
        $(LIBX)\hostable.h $(LIBX)\security.h $(LIBX)\arpadate.h $(UUCICO)\checktim.h\
        $(LIBX)\timestmp.h $(LIBX)\getopt.h $(LIBX)\import.h $(UUCICO)\dcp.h\
        $(UUCICO)\dcplib.h $(UUCICO)\dcpsys.h $(UUCICO)\dcpxfer.h $(LIBX)\ssleep.h\
        $(UUCICO)\ulib.h $(LIBX)\hostatus.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\dcpfpkt.o: $(UUCICO)\dcpfpkt.c $(LIBX)\lib.h $(LIBX)\hostable.h $(LIBX)\security.h\
        $(UUCICO)\dcp.h $(UUCICO)\ulib.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\dcpgpkt.o: $(UUCICO)\dcpgpkt.c $(LIBX)\lib.h $(LIBX)\hostable.h $(LIBX)\security.h\
        $(UUCICO)\dcp.h $(UUCICO)\ulib.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\dcplib.o: $(UUCICO)\dcplib.c $(LIBX)\lib.h $(LIBX)\arpadate.h\
        $(UUCICO)\dcp.h $(UUCICO)\dcplib.h $(UUCICO)\dcpsys.h $(LIBX)\hlib.h\
        $(LIBX)\hostable.h $(LIBX)\security.h $(LIBX)\import.h $(UUCICO)\modem.h $(LIBX)\pushpop.h\
        $(LIBX)\ssleep.h $(UUCICO)\ulib.h $(LIBX)\usertabl.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\dcpstats.o: $(UUCICO)\dcpstats.c $(LIBX)\lib.h\
        $(UUCICO)\dcp.h $(UUCICO)\dcplib.h $(LIBX)\hlib.h\
        $(LIBX)\hostable.h $(LIBX)\security.h $(LIBX)\timestmp.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\dcpsys.o: $(UUCICO)\dcpsys.c $(LIBX)\lib.h $(LIBX)\arpadate.h\
        $(UUCICO)\dcp.h $(UUCICO)\dcpgpkt.h $(UUCICO)\dcplib.h $(UUCICO)\dcpsys.h\
        $(LIBX)\hlib.h $(LIBX)\hostable.h $(LIBX)\security.h $(UUCICO)\modem.h $(LIBX)\ndir.h\
        $(LIBX)\ssleep.h $(UUCICO)\ulib.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\dcpxfer.o: $(UUCICO)\dcpxfer.c $(LIBX)\lib.h $(LIBX)\hlib.h\
        $(LIBX)\expath.h $(LIBX)\hostable.h $(LIBX)\security.h $(UUCICO)\dcp.h $(UUCICO)\dcpxfer.h\
        $(UUCICO)\dcpsys.h $(LIBX)\import.h $(UUCICO)\ulib.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\deliver.o: $(MAIL)\deliver.c $(LIBX)\lib.h $(LIBX)\hostable.h $(LIBX)\security.h\
        $(LIBX)\usertabl.h $(LIBX)\hlib.h $(LIBX)\getseq.h $(MAIL)\address.h\
        $(MAIL)\deliver.h $(LIBX)\pushpop.h $(LIBX)\import.h $(LIBX)\ssleep.h
        $(CC) $(CCOPT) $(MAIL)\$(@B).c

$(OBJ)\deliver2.o: $(MAIL)\deliver.c $(LIBX)\lib.h $(LIBX)\hostable.h $(LIBX)\security.h\
        $(LIBX)\usertabl.h $(LIBX)\hlib.h $(LIBX)\getseq.h $(MAIL)\address.h\
        $(MAIL)\deliver.h $(LIBX)\pushpop.h $(LIBX)\import.h $(LIBX)\ssleep.h
        $(CC) $(CCOPT) /DFAMILYAPI $(MAIL)\deliver.c

$(OBJ)\expath.o: $(LIBX)\expath.c $(LIBX)\lib.h $(LIBX)\hlib.h\
        $(LIBX)\expath.h $(LIBX)\hostable.h $(LIBX)\security.h $(LIBX)\usertabl.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\export.o: $(LIBX)\export.c $(LIBX)\lib.h $(LIBX)\arbmath.h\
        $(LIBX)\export.h $(LIBX)\import.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\getopt.o: $(LIBX)\getopt.c $(LIBX)\getopt.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\getseq.o: $(LIBX)\getseq.c $(LIBX)\lib.h $(LIBX)\hlib.h\
        $(LIBX)\getseq.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\hlib.o: $(LIBX)\hlib.c $(LIBX)\lib.h $(LIBX)\hlib.h\
        $(LIBX)\hostable.h $(LIBX)\security.h $(UUCICO)\dcp.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\hostable.o: $(LIBX)\hostable.c $(LIBX)\lib.h $(LIBX)\hlib.h\
        $(LIBX)\hostable.h $(LIBX)\security.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\hostatus.o: $(LIBX)\hostatus.c $(LIBX)\lib.h $(LIBX)\hlib.h\
        $(LIBX)\hostable.h $(LIBX)\security.h $(LIBX)\hostatus.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\import.o: $(LIBX)\import.c $(LIBX)\lib.h $(LIBX)\import.h\
        $(LIBX)\arbmath.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\lib.o: $(LIBX)\lib.c $(LIBX)\lib.h $(LIBX)\hlib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\mail.o: $(MAIL)\mail.c $(LIBX)\lib.h $(MAIL)\mlib.h\
        $(LIBX)\hlib.h $(MAIL)\alias.h $(MAIL)\maillib.h $(MAIL)\mailsend.h\
        $(LIBX)\timestmp.h $(LIBX)\pushpop.h $(MAIL)\address.h\
        $(MAIL)\mailblib.h $(LIBX)\getopt.h
        $(CC) $(CCOPT) $(MAIL)\$(@B).c

$(OBJ)\mailblib.o: $(MAIL)\mailblib.c $(LIBX)\lib.h $(MAIL)\maillib.h\
        $(MAIL)\mailblib.h $(MAIL)\mailsend.h $(LIBX)\hlib.h $(MAIL)\alias.h
        $(CC) $(CCOPT) $(MAIL)\$(@B).c

$(OBJ)\maillib.o: $(MAIL)\maillib.c $(LIBX)\lib.h $(LIBX)\hlib.h\
        $(MAIL)\mlib.h $(MAIL)\alias.h $(MAIL)\maillib.h
        $(CC) $(CCOPT) $(MAIL)\$(@B).c

$(OBJ)\mailsend.o: $(MAIL)\mailsend.c $(LIBX)\arpadate.h\
        $(LIBX)\lib.h $(LIBX)\hlib.h $(MAIL)\mlib.h $(MAIL)\alias.h\
        $(MAIL)\maillib.h $(MAIL)\mailsend.h $(MAIL)\address.h
        $(CC) $(CCOPT) $(MAIL)\$(@B).c

$(OBJ)\mlib.o: $(MAIL)\mlib.c $(LIBX)\lib.h $(LIBX)\hlib.h
        $(CC) $(CCOPT) $(MAIL)\$(@B).c

$(OBJ)\mlib2.o: $(MAIL)\mlib.c $(LIBX)\lib.h $(LIBX)\hlib.h
        $(CC) $(CCOPT) /DFAMILYAPI $(MAIL)\mlib.c

$(OBJ)\modem.o: $(UUCICO)\modem.c $(LIBX)\lib.h $(LIBX)\arpadate.h\
        $(UUCICO)\checktim.h $(UUCICO)\dcp.h $(UUCICO)\dcpsys.h $(LIBX)\hlib.h\
        $(LIBX)\hostable.h $(LIBX)\security.h $(UUCICO)\modem.h $(LIBX)\ssleep.h $(UUCICO)\ulib.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\ndir.o: $(LIBX)\ndir.c $(LIBX)\ndir.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\ndiros2.o: $(LIBX)\ndiros2.c $(LIBX)\lib.h $(LIBX)\ndir.h
        $(CC) $(CCOPT) /DFAMILYAPI $(LIBX)\$(@B).c

$(OBJ)\nbstime.o:  $(UUCICO)\nbstime.c $(LIBX)\lib.h $(LIBX)\arpadate.h\
        $(UUCICO)\dcp.h $(UUCICO)\dcpsys.h $(LIBX)\hostable.h\
        $(UUCICO)\nbstime.h $(UUCICO)\script.h $(LIBX)\security.h\
        $(UUCICO)\ulib.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\nbstime2.o:  $(UUCICO)\nbstime.c $(LIBX)\lib.h $(LIBX)\arpadate.h\
        $(UUCICO)\dcp.h $(UUCICO)\dcpsys.h $(LIBX)\hostable.h\
        $(UUCICO)\nbstime.h $(UUCICO)\script.h $(LIBX)\security.h\
        $(UUCICO)\ulib.h
        $(CC) $(CCOPT) /DFAMILYAPI $(UUCICO)\nbstime.c

$(OBJ)\pushpop.o: $(LIBX)\pushpop.c $(LIBX)\lib.h $(LIBX)\pushpop.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\readnext.o: $(LIBX)\readnext.c $(LIBX)\lib.h $(LIBX)\readnext.h\
        $(LIBX)\ndir.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\rmail.o: $(MAIL)\rmail.c $(LIBX)\lib.h $(MAIL)\address.h\
        $(LIBX)\arpadate.h $(LIBX)\getopt.h $(LIBX)\getseq.h $(LIBX)\hlib.h\
        $(MAIL)\deliver.h $(LIBX)\hostable.h $(LIBX)\security.h $(LIBX)\timestmp.h
        $(CC) $(CCOPT) $(MAIL)\$(@B).c

$(OBJ)\rnews.o: $(UTIL)\rnews.c $(LIBX)\lib.h $(LIBX)\hlib.h\
        $(LIBX)\timestmp.h
        $(CC) $(CCOPT) $(UTIL)\$(@B).c

$(OBJ)\script.o: $(UUCICO)\script.c $(LIBX)\lib.h $(UUCICO)\script.h\
        $(LIBX)\hlib.h $(UUCICO)\dcp.h $(UUCICO)\dcpstats.h \
        $(LIBX)\hostable.h $(LIBX)\hostatus.h $(LIBX)\security.h\
        $(LIBX)\timestmp.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\security.o: $(UUCICO)\security.c $(LIBX)\lib.h $(LIBX)\security.h\
        $(LIBX)\hostable.h $(LIBX)\hostatus.h $(LIBX)\hlib.h\
        $(LIBX)\expath.h $(LIBX)\usertabl.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\ssleep.o: $(LIBX)\ssleep.c $(LIBX)\lib.h $(LIBX)\ssleep.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\ssleep2.o: $(LIBX)\ssleep.c $(LIBX)\lib.h $(LIBX)\ssleep.h
        $(CC) $(CCOPT) /DFAMILYAPI $(LIBX)\ssleep.c

$(OBJ)\stater.o: $(LIBX)\stater.c $(LIBX)\lib.h $(LIBX)\stater.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(TIMESTMP): $(LIBX)\timestmp.c $(LIBX)\lib.h $(LIBX)\timestmp.h\
        $(MAKEFILE) $(REGEN)
        $(CC) $(CCOPT) -DUUPCV="\"$(VERS)\"" $(LIBX)\$(@B).c

$(OBJ)\ulib.o: $(UUCICO)\ulib.c $(LIBX)\lib.h $(UUCICO)\ulib.h\
        $(UUCICO)\comm.h $(LIBX)\ssleep.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\ulibos2.o: $(UUCICO)\ulibos2.c $(LIBX)\lib.h $(UUCICO)\ulib.h\
        $(LIBX)\ssleep.h
        $(CC) $(CCOPT) /DFAMILYAPI $(UUCICO)\$(@B).c

$(OBJ)\ulibz100.o: $(UUCICO)\ulibz100.c $(LIBX)\z100.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\usertabl.o: $(LIBX)\usertabl.c $(LIBX)\lib.h $(LIBX)\hlib.h\
        $(LIBX)\usertabl.h $(LIBX)\hostable.h $(LIBX)\security.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\uucp.o: $(UTIL)\uucp.c $(LIBX)\lib.h\
        $(LIBX)\expath.h $(LIBX)\getopt.h $(LIBX)\getseq.h $(LIBX)\hlib.h\
        $(LIBX)\hostable.h $(LIBX)\security.h $(LIBX)\import.h $(LIBX)\ndir.h\
        $(LIBX)\timestmp.h
        $(CC) $(CCOPT) $(UTIL)\$(@B).c

$(OBJ)\uucico.o: $(UUCICO)\uucico.c $(LIBX)\lib.h $(UUCICO)\dcp.h\
        $(LIBX)\hlib.h $(LIBX)\hostable.h $(LIBX)\security.h $(LIBX)\pushpop.h $(LIBX)\timestmp.h\
        $(UUCICO)\ulib.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\uupoll.o: $(UTIL)\uupoll.c $(LIBX)\getopt.h $(LIBX)\lib.h\
        $(LIBX)\timestmp.h $(LIBX)\ssleep.h $(LIBX)\arpadate.h
        $(CC) $(CCOPT) $(UTIL)\$(@B).c

$(OBJ)\uupoll2.o: $(UTIL)\uupoll.c $(LIBX)\getopt.h $(LIBX)\lib.h\
        $(LIBX)\timestmp.h $(LIBX)\ssleep.h $(LIBX)\arpadate.h
        $(CC) $(CCOPT) /DFAMILYAPI $(UTIL)\uupoll.c

$(OBJ)\uustat.o: $(UTIL)\uustat.c $(LIBX)\lib.h $(UUCICO)\dcp.h\
        $(LIBX)\export.h $(LIBX)\import.h $(LIBX)\getopt.h $(LIBX)\hlib.h\
        $(LIBX)\hostable.h $(LIBX)\security.h $(LIBX)\hostatus.h $(LIBX)\pushpop.h\
        $(LIBX)\readnext.h $(LIBX)\timestmp.h
        $(CC) $(CCOPT) $(UTIL)\$(@B).c

$(OBJ)\uusub.o: $(UTIL)\uusub.c $(LIBX)\lib.h $(LIBX)\hostable.h $(LIBX)\security.h\
        $(LIBX)\hostatus.h $(LIBX)\timestmp.h
        $(CC) $(CCOPT) $(UTIL)\$(@B).c

$(OBJ)\uux.o: $(UTIL)\uux.c $(LIBX)\lib.h $(LIBX)\hlib.h\
        $(LIBX)\hostable.h $(LIBX)\security.h $(LIBX)\import.h $(LIBX)\pushpop.h\
        $(LIBX)\timestmp.h $(LIBX)\getopt.h
        $(CC) $(CCOPT) $(UTIL)\$(@B).c

$(OBJ)\uuxqt.o: $(UUCICO)\uuxqt.c $(LIBX)\lib.h $(LIBX)\hlib.h\
        $(LIBX)\hostable.h $(LIBX)\security.h $(LIBX)\import.h $(LIBX)\pushpop.h\
        $(LIBX)\timestmp.h $(LIBX)\getopt.h $(LIBX)\readnext.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

#       Force a regeneration of the time stamp/version module.

regen:  $(LIBX)\timestmp.c
        - del $(OBJ)\timestmp.o

#       The timestamp module has a reference to this MAKEFILE,
#       which insures whenever we change the version number the
#       time stamp gets re-generated.

#       This is a special case, the assembler module which handles our
#       I/O to the serial port.

$(OBJ)\comm.o: $(UUCICO)\comm.asm
        $(MASM) $(MASMOPT) /w1 $(UUCICO)\$(@B) ,$@;

# generate the source browser database for the PWB

$(MAKEFILE).bsc: $(SBRS)
        pwbrmake @<<
/o $(MAKEFILE).bsc $(SBRS)
<<
