#       Program:        nmake                      15 May 1989
#       Author:         Andrew H. Derbyshire
#                       P. O. Box 132
#                       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)
#                       LINK386         (OS/2 Linker)
#                       Input source files.
#
#       Copyright (c) 1990-1992 by Kendra Electronic Wonderworks;
#       all rights reserved except those explicitly granted by
#       the UUPC/extended license.
#
#       nmk /nologo /s /f nmake installR
#       nmk /nologo /s /f nmake installP
#
#       $Id: NMAKE 1.5 1992/12/04 00:58:57 ahd Exp $
#
#       $Log: NMAKE $
#    Revision 1.5  1992/12/04  00:58:57  ahd
#    Add sysalias to rmail build
#
#    Revision 1.4  1992/11/29  22:12:36  ahd
#    Correct TMP directory to TEMP
#    Add installation of OS/2 CMD files from RCS source directory
#    Change copyright message
#    Add build for TESTULIB.EXE
#
#    Revision 1.3  1992/11/27  14:37:55  ahd
#    Add scrsize() to library build
#
#    Revision 1.2  1992/11/22  21:04:42  ahd
#    Add normalize() to build

# *--------------------------------------------------------------------*
# *     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.11x

# *--------------------------------------------------------------------*
# *                  The memory model to be built.                     *
# *--------------------------------------------------------------------*

MODEL   = M

# *--------------------------------------------------------------------*
# *   Various directories.  The TEMP directory is not defined here;    *
# *   rather we expect it to be defined as part of the user's          *
# *   environment variables                                            *
# *--------------------------------------------------------------------*

SRC     = .
MAIL    = $(SRC)\mail
UTIL    = $(SRC)\util
UUCP    = $(SRC)\uucp
RNEWS   = $(SRC)\rnews
LIBX    = $(SRC)\lib
TEST    = $(SRC)\test
UUCICO  = $(SRC)\uucico
OBJ     = $(SRC)\msobj$(MODEL)
SBR     = $(SRC)\sbr
PRODP   = \uupc\os2bin
PRODR   = \uupc\bin
MSLIB   = \c600\lib
SCRIPTS = $(SRC)\scripts

# *--------------------------------------------------------------------*
# *                        Various file names                          *
# *--------------------------------------------------------------------*

OS2ZIPV2 = $(SRC)\$(VERS)\uupcos22.zip
OS2ZIPV3 = $(SRC)\$(VERS)\uupcos23.zip
OS2ZIPV4 = $(SRC)\$(VERS)\uupcos24.zip
LIBCOMM  = $(TEMP)\$(MODEL)uupcmsc.lib
LIBOS2   = $(TEMP)\$(MODEL)uupcos2.lib
LIBDOS   = $(TEMP)\$(MODEL)uupcdos.lib
WORKFILE = $(TEMP)\UUPCTEMP.TMP

# *--------------------------------------------------------------------*
# *         Library names; season to taste and configuration           *
# *--------------------------------------------------------------------*

OS2LIBS=$(MSLIB)\$(MODEL)libcep+$(LIBCOMM)+$(LIBOS2)+$(MSLIB)\os2
DOSLIBS=$(MSLIB)\$(MODEL)libce+$(LIBCOMM)+$(LIBDOS)

# *--------------------------------------------------------------------*
# *        The names of various object files that we create.           *
# *--------------------------------------------------------------------*

TIMESTMP = $(OBJ)\timestmp.o
LIBLIST = $(OBJ)\arbmath.o $(OBJ)\arpadate.o $(OBJ)\bugout.o\
          $(OBJ)\chdir.o $(OBJ)\checkptr.o $(OBJ)\configur.o\
          $(OBJ)\catcher.o $(OBJ)\dater.o $(OBJ)\expath.o\
          $(OBJ)\export.o $(OBJ)\filebkup.o $(OBJ)\fopen.o $(OBJ)\getargs.o\
          $(OBJ)\getopt.o $(OBJ)\getseq.o $(OBJ)\hostable.o\
          $(OBJ)\importng.o\
          $(OBJ)\hostatus.o $(OBJ)\hostrset.o $(OBJ)\import.o\
          $(OBJ)\kanjicnv.o $(OBJ)\lock.o $(OBJ)\logger.o\
          $(OBJ)\mkdir.o $(OBJ)\mkfilenm.o $(OBJ)\mkmbox.o\
          $(OBJ)\mktempnm.o $(OBJ)\normaliz.o $(OBJ)\printmsg.o\
          $(OBJ)\pushpop.o $(OBJ)\readnext.o $(OBJ)\rename.o\
          $(OBJ)\security.o $(OBJ)\stater.o $(OBJ)\strpool.o\
          $(OBJ)\usertabl.o $(OBJ)\validcmd.o $(TIMESTMP)

LIBDOSLIST= $(OBJ)\ndir.o $(OBJ)\printerr.o $(OBJ)\ssleep.o\
            $(OBJ)\getdta.o $(OBJ)\safeio.o $(OBJ)\safeout.o\
            $(OBJ)\scrsize.o
LIBOS2LIST= $(OBJ)\ndiros2.o $(OBJ)\printerr.o $(OBJ)\ssleep2.o\
            $(OBJ)\safeio2.o $(OBJ)\safeout2.o $(OBJ)\scrsize2.o

# *--------------------------------------------------------------------*
# *             Object file lists for specific programs                *
# *--------------------------------------------------------------------*

MAILCOMOBJ = $(OBJ)\mail.o $(OBJ)\address.o $(OBJ)\mailblib.o\
          $(OBJ)\maillib.o $(OBJ)\mailsend.o \
          $(OBJ)\alias.o

MAILROBJ  = $(MAILCOMOBJ) $(OBJ)\mlib.o
MAILPOBJ  = $(MAILCOMOBJ) $(OBJ)\mlib2.o

UUCPOBJ = $(OBJ)\address.o $(OBJ)\uucp.o

RNEWSOBJ = $(OBJ)\rnews.o $(OBJ)\history.o $(OBJ)\active.o
EXPIREOBJ = $(OBJ)\expire.o $(OBJ)\active.o

RMAILCOMOBJ = $(OBJ)\address.o $(OBJ)\rmail.o $(OBJ)\sysalias.o

RMAILPOBJ  = $(RMAILCOMOBJ) $(OBJ)\deliver2.o
RMAILROBJ  = $(RMAILCOMOBJ) $(OBJ)\deliver.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
UUCICOOBJ2 = $(OBJ)\modem.o $(OBJ)\script.o $(OBJ)\uucico.o
UUCICOPOBJ3 = $(OBJ)\nbstime2.o $(OBJ)\ulibos2.o
UUCICOROBJ3 = $(OBJ)\nbstime.o  $(OBJ)\ulib.o $(OBJ)\commfifo.o

UUSUBOBJ = $(OBJ)\uusub.o

UUSTATOBJ = $(OBJ)\uustat.o

UUXQTOBJ = $(OBJ)\uuxqt.o

UUXOBJ = $(OBJ)\uux.o

POLLPOBJ  = $(OBJ)\uupoll2.o
POLLROBJ  = $(OBJ)\uupoll.o

# *--------------------------------------------------------------------*
# *      Lists of programs to built for various pseudo targets         *
# *--------------------------------------------------------------------*

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
INSTALLP = $(INSTALL2) $(INSTALL3) $(INSTALL4) $(INSTALLS)
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

INSTALL2= $(PRODP)\mail.exe $(PRODP)\rmail.exe $(PRODP)\uucico.exe\
          $(PRODP)\uuxqt.exe
INSTALL3= $(PRODP)\uucp.exe $(PRODP)\uuname.exe $(PRODP)\uupoll.exe\
          $(PRODP)\uustat.exe $(PRODP)\uusub.exe\
          $(PRODP)\uux.exe $(FMT) $(PRODP)\gensig.exe $(PRODP)\novrstrk.exe \
          $(PRODP)\su.cmd $(PRODP)\uuio.cmd $(PRODP)\uuclean.cmd\
          $(PRODP)\waiting.cmd $(PRODP)\mailchek.cmd
INSTALL4= $(PRODP)\rnews.exe $(PRODP)\expire.exe

# *--------------------------------------------------------------------*
# *   Source browser files; because of space limitations, these        *
# *   are not always generated unless you change the C compiler        *
# *   options.                                                         *
# *--------------------------------------------------------------------*

SBRS =    $(SBR)\active.sbr\
          $(SBR)\address.sbr\
          $(SBR)\alias.sbr\
          $(SBR)\arbmath.sbr\
          $(SBR)\arpadate.sbr\
          $(SBR)\bugout.sbr\
          $(SBR)\catcher.sbr\
          $(SBR)\chdir.sbr\
          $(SBR)\checkptr.sbr\
          $(SBR)\checktim.sbr\
          $(SBR)\commfifo.sbr\
          $(SBR)\configur.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)\expath.sbr\
          $(SBR)\expire.sbr\
          $(SBR)\export.sbr\
          $(SBR)\fopen.sbr\
          $(SBR)\getargs.sbr\
          $(SBR)\getdta.sbr\
          $(SBR)\getopt.sbr\
          $(SBR)\getseq.sbr\
          $(SBR)\history.sbr\
          $(SBR)\hostable.sbr\
          $(SBR)\hostatus.sbr\
          $(SBR)\hostrset.sbr\
          $(SBR)\import.sbr\
          $(SBR)\importng.sbr\
          $(SBR)\kanjicnv.sbr\
          $(SBR)\mail.sbr\
          $(SBR)\mailblib.sbr\
          $(SBR)\maillib.sbr\
          $(SBR)\mailsend.sbr\
          $(SBR)\mkdir.sbr\
          $(SBR)\mkfilenm.sbr\
          $(SBR)\mkmbox.sbr\
          $(SBR)\mktempnm.sbr\
          $(SBR)\mlib.sbr\
          $(SBR)\modem.sbr\
          $(SBR)\nbstime.sbr\
          $(SBR)\ndir.sbr\
          $(SBR)\ndiros2.sbr\
          $(SBR)\printerr.sbr\
          $(SBR)\printmsg.sbr\
          $(SBR)\pushpop.sbr\
          $(SBR)\readnext.sbr\
          $(SBR)\rename.sbr\
          $(SBR)\rmail.sbr\
          $(SBR)\rnews.sbr\
          $(SBR)\safeio.sbr\
          $(SBR)\safeout.sbr\
          $(SBR)\script.sbr\
          $(SBR)\security.sbr\
          $(SBR)\ssleep.sbr\
          $(SBR)\stater.sbr\
          $(SBR)\timestmp.sbr\
          $(SBR)\ulib.sbr\
          $(SBR)\ulibos2.sbr\
          $(SBR)\usertabl.sbr\
          $(SBR)\uucico.sbr\
          $(SBR)\uucp.sbr\
          $(SBR)\uupoll.sbr\
          $(SBR)\uustat.sbr\
          $(SBR)\uusub.sbr\
          $(SBR)\uux.sbr\
          $(SBR)\uuxqt.sbr\
          $(SBR)\validcmd.sbr

# *--------------------------------------------------------------------*
# *                   Anf, of course, our makefile                     *
# *--------------------------------------------------------------------*

MAKEFILE = $(SRC)\nmake

# *--------------------------------------------------------------------*
# *      Define the linker used and the options related to it.         *
# *--------------------------------------------------------------------*

#       Could use link386 under OS/2 2.0, but doesn't work if cross
#       compiled to older OS/2 1.3 system.
LINKER  = link

#LINKPOPT = /pm:vio /co /far /noignorecase /stack:15000 /nod
LINKPOPT = /pm:vio /exepack /far /noignorecase /stack:10000 /nod /batch

#       No /exepack under DOS, DOS 5 can be confused by it.
LINKROPT = /batch /far /noignorecase /stack:30000

# *--------------------------------------------------------------------*
# *                     Microsoft Assembler name                       *
# *--------------------------------------------------------------------*

MASM    = masm.exe

#MASMOPTS = /DUUPC /DDEBUG /n /v /t /z /W2 /ZD /Mx
MASMOPTS = /DUUPC /n /v /t /z /W2 /ZI /ZD /Mx

# *--------------------------------------------------------------------*
# *                      C compiler and options                        *
# *--------------------------------------------------------------------*

# *--------------------------------------------------------------------*
# *   Add /Zi for Codeview debugging information, and change the       *
# *   /exepack option to /codeview on the linker options (above).      *
# *                                                                    *
# *   Add /FR$(SBR)\$(@B).sbr to generate source browser files.        *
# *   (I had to delete the this because of space considerations        *
# *   on kendra.)                                                      *
# *                                                                    *
# *   Also, delete /Ocegilt (optimizer options) and /Gs (no stack      *
# *   overflow checking) if debugging and having problems.  Note       *
# *   stack overflow *is* checked in printmsg(), which is called       *
# *   by most if not all deep routines.                                *
# *                                                                    *
# *   Delete the /G2 if building for an 8086 based system.             *
# *--------------------------------------------------------------------*

CC      = cl

#       Use this CCOPT for debugging; the /FR is optional.
#CCOPT   = /I$(LIBX) /A$(MODEL) /c /W4 /nologo /G2 /Fo$@ /Od /FR$(SBR)\$(@B).sbr /Zi /Or /DUDEBUG

#       Use this CCOPT for productiom
CCOPT   = /I$(LIBX) /A$(MODEL) /c /W4 /nologo /G2 /Fo$@ /Ocegilt

# *--------------------------------------------------------------------*
# *     Phil Katz's PKZIP, for creating the distributed archive        *
# *--------------------------------------------------------------------*

ZIP     = pkzip

# *--------------------------------------------------------------------*
# *                Begin rules for building modules.                   *
# *--------------------------------------------------------------------*

# *--------------------------------------------------------------------*
# *        The first definition is the one built by default.           *
# *--------------------------------------------------------------------*

# *--------------------------------------------------------------------*
# *   testp builds the basic OS/2 UUPC modules in the source           *
# *   directory.                                                       *
# *--------------------------------------------------------------------*

testP:  $(OBJ) expirep.exe mailp.exe rmailp.exe rnewsp.exe uucicop.exe\
        uupollp.exe uucpp.exe\
        uusubp.exe uustatp.exe uuxp.exe uuxqtp.exe
        - del $(LIBCOMM)
        - del $(LIBOS2)

# *--------------------------------------------------------------------*
# *   testr builds the basic MS-DOS UUPC modules in the source         *
# *   directory.                                                       *
# *--------------------------------------------------------------------*

testR:  $(OBJ) expirer.exe mailr.exe rmailr.exe rnewsr.exe uucicor.exe\
        uupollr.exe uucpr.exe\
        uusubr.exe uustatr.exe uuxr.exe uuxqtr.exe
        - del $(LIBCOMM)
        - del $(LIBDOS)

# *--------------------------------------------------------------------*
# *   Prod build the basic modules and then moves them to $(PROD)      *
# *--------------------------------------------------------------------*

prodp:  $(OBJ) $(INSTALLP) regen
        - del $(LIBCOMM)
        - del $(LIBOS2)


prodr:  $(OBJ) $(INSTALLR)
        - del $(LIBCOMM)
        - del $(LIBOS2)

installp:  $(OBJ) $(INSTALLP) $(OS2ZIPV2) $(OS2ZIPV3)  $(OS2ZIPV4)
        - del $(LIBCOMM)
        - del $(LIBOS2)

installr:  prodr

zip:    installp

# *--------------------------------------------------------------------*
# *          Do a purge of various temporary output files.             *
# *--------------------------------------------------------------------*

clean:  xclean
        - del $(SRC)\*.bak
        - del *.map
        - del $(WORKFILE)

# *--------------------------------------------------------------------*
# *      Do a clean of just executable files and related files.        *
# *--------------------------------------------------------------------*

xclean:
        - del $(OBJ)\*.o
        - del $(OBJ)\*.exe
        - del $(OBJ)\*.lib
        - del $(SRC)\*.o
        - del $(SRC)\*.exe
        - del $(SBR)\*.sbr

# *--------------------------------------------------------------------*
# *             Read mode (DOS) production executables                 *
# *--------------------------------------------------------------------*

$(PRODR)\expire.exe: expirer.exe
        - del $@
        move $? $@

$(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 $? $@

# *--------------------------------------------------------------------*
# *             Protected mode (OS/2) production modules               *
# *--------------------------------------------------------------------*

$(PRODP)\expire.exe: expirep.exe
        - del $@
        move $? $@

$(PRODP)\fmt.exe: fmtp.exe
        - del $@
        move $? $@

$(PRODP)\gensig.exe: gensigp.exe
        - del $@
        move $? $@

$(PRODP)\mail.exe: mailp.exe
        - del $@
        move $? $@

$(PRODP)\novrstrk.exe: novrstrp.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 $? $@

$(PRODP)\uuname.exe: uunamep.exe
        - del $@
        move $? $@

$(PRODP)\uuio.cmd: $(SCRIPTS)\uuio.cmd
        copy $? $@

$(PRODP)\waiting.cmd: $(SCRIPTS)\waiting.cmd
        copy $? $@

$(PRODP)\su.cmd: $(SCRIPTS)\su.cmd
        copy $? $@

$(PRODP)\mailchek.cmd: $(SCRIPTS)\mailchek.cmd
        copy $? $@

$(PRODP)\uuclean.cmd: $(SCRIPTS)\uuclean.cmd
        copy $? $@

# *--------------------------------------------------------------------*
# *               The commands to actually link files                  *
# *--------------------------------------------------------------------*

expirep.exe:     $(EXPIREOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(EXPIREOBJ)
$@,NUL,$(OS2LIBS);
<<

expirer.exe:     $(EXPIREOBJ)  $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(EXPIREOBJ)
$@,NUL,$(DOSLIBS);
<<

fmtp.exe:     $(OBJ)\fmt.o $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(OBJ)\fmt.o
$@,NUL,$(OS2LIBS);
<<

novrstrp.exe:     $(OBJ)\novrstrk.o $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(OBJ)\novrstrk.o
$@,NUL,$(OS2LIBS);
<<


gensigp.exe:     $(OBJ)\gensig.o $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(OBJ)\gensig.o
$@,NUL,$(OS2LIBS);
<<

uunamep.exe:     $(OBJ)\uuname.o $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(OBJ)\uuname.o
$@,NUL,$(OS2LIBS);
<<

mailp.exe:     $(MAILPOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(MAILPOBJ)
$@,NUL,$(OS2LIBS);
<<

mailr.exe:     $(MAILROBJ) $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(MAILROBJ)
$@,NUL,$(DOSLIBS);
<<

rmailp.exe:     $(RMAILPOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(RMAILPOBJ)
$@,NUL,$(OS2LIBS);
<<

rmailr.exe:     $(RMAILROBJ) $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(RMAILROBJ)
$@,NUL,$(DOSLIBS);
<<

uucpp.exe:     $(UUCPOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(UUCPOBJ)
$@,NUL,$(OS2LIBS);
<<

uucpr.exe:     $(UUCPOBJ) $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(UUCPOBJ)
$@,NUL,$(DOSLIBS);
<<

rnewsp.exe:     $(RNEWSOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(RNEWSOBJ)
$@,NUL,$(OS2LIBS);
<<

rnewsr.exe:     $(RNEWSOBJ)  $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(RNEWSOBJ)
$@,NUL,$(DOSLIBS);
<<

uucicop.exe:     $(UUCICOOBJ1) $(UUCICOOBJ2) $(UUCICOPOBJ3) \
                 $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(UUCICOOBJ1)+
$(UUCICOOBJ2)+
$(UUCICOPOBJ3)
$@,NUL,$(OS2LIBS);
<<

uucicor.exe:     $(UUCICOOBJ1) $(UUCICOOBJ2) $(UUCICOROBJ3)\
                  $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(UUCICOOBJ1)+
$(UUCICOOBJ2)+
$(UUCICOROBJ3)
$@,NUL,$(DOSLIBS);
<<

uupollp.exe:      $(POLLPOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(POLLPOBJ)
$@,NUL,$(OS2LIBS);
<<

uupollr.exe:      $(POLLROBJ)  $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(POLLROBJ)
$@,NUL,$(DOSLIBS);
<<

uusubp.exe:      $(UUSUBOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(UUSUBOBJ)
$@,NUL,$(OS2LIBS);
<<

uuxqtp.exe:      $(UUXQTOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(UUXQTOBJ)
$@,NUL,$(OS2LIBS);
<<

uuxp.exe:      $(UUXOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(UUXOBJ)
$@,NUL,$(OS2LIBS);
<<

uustatp.exe:      $(UUSTATOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(UUSTATOBJ)
$@,NUL,$(OS2LIBS);
<<

uusubr.exe:      $(UUSUBOBJ)  $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(UUSUBOBJ)
$@,NUL,$(DOSLIBS);
<<

uuxqtr.exe:      $(UUXQTOBJ) $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(UUXQTOBJ)
$@,NUL,$(DOSLIBS);
<<

uuxr.exe:      $(UUXOBJ)  $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(UUXOBJ)
$@,NUL,$(DOSLIBS);
<<

uustatr.exe:      $(UUSTATOBJ) $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(UUSTATOBJ)
$@,NUL,$(DOSLIBS);
<<

testulib.exe:   $(OBJ)\testulib.o $(OBJ)\ulib.o $(OBJ)\commfifo.o \
                $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(OBJ)\testulib.o $(OBJ)\ulib.o $(OBJ)\commfifo.o
$@,NUL,$(DOSLIBS);
<<

# *--------------------------------------------------------------------*
# *                          The zip files                             *
# *--------------------------------------------------------------------*

$(OS2ZIPV2):  $(INSTALL2)
       - mkdir $(SRC)\$(VERS)
       ! -12 $(ZIP) -o- -u $@ $?
       pkbanner $@  <<
Kendra Electronic Wonderworks: UUPC/extended $(VERS) OS/2 executables (1 of 3)

Changes and Compilation Copyright (c) 1990-1992 by Kendra Electronic
Wonderworks.  May be distributed freely if original source and documentation
files are included.  Please direct all questions on UUPC/extended to
help@kew.com.
<<

$(OS2ZIPV3):  $(INSTALL3) $(INSTALLS)
       - mkdir $(SRC)\$(VERS)
       ! -12 $(ZIP) -o- -u $@ $?
       pkbanner $@  <<
Kendra Electronic Wonderworks: UUPC/extended $(VERS) OS/2 executables (2 of 3)

Changes and Compilation Copyright (c) 1990-1992 by Kendra Electronic
Wonderworks.  May be distributed freely if original source and documentation
files are included.  Please direct all questions on UUPC/extended to
help@kew.com.
<<

$(OS2ZIPV4):  $(INSTALL4)
       - mkdir $(SRC)\$(VERS)
       ! -12 $(ZIP) -o- -u $@ $?
       pkbanner $@  <<
Kendra Electronic Wonderworks: UUPC/extended $(VERS) OS/2 executables (3 of 3)

Changes and Compilation Copyright (c) 1990-1992 by Kendra Electronic
Wonderworks.  May be distributed freely if original source and documentation
files are included.  Please direct all questions on UUPC/extended to
help@kew.com.

<<

# *--------------------------------------------------------------------*
# *                    Build the object libraries                      *
# *--------------------------------------------------------------------*

$(LIBCOMM): $(LIBLIST)
       - del $(LIBCOMM)
        @echo $@     >  $(WORKFILE)
        @echo y      >> $(WORKFILE)
      ! @echo +$(?)$(CARET)& >> $(WORKFILE)
        @echo ,nul;   >> $(WORKFILE)
        @echo $(LIBCOMM) >> $(WORKFILE)
        lib @$(WORKFILE)

$(LIBDOS): $(LIBDOSLIST)
       - del $(LIBDOS)
        LIB /noignorecase @<<
$@ +$?;
<<

$(LIBOS2): $(LIBOS2LIST)
       - del $(LIBOS2)
        LIB /noignorecase @<<
$@ +$?;
<<

# *--------------------------------------------------------------------*
# *                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)\active.o: $(RNEWS)\active.c $(LIBX)\lib.h $(RNEWS)\active.h
        $(CC) $(CCOPT) $(RNEWS)\$(@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)\bugout.o: $(LIBX)\bugout.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\catcher.o: $(LIBX)\catcher.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\chdir.o: $(LIBX)\chdir.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\checkptr.o: $(LIBX)\checkptr.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\checktim.o: $(UUCICO)\checktim.c $(LIBX)\lib.h $(UUCICO)\checktim.h
        $(CC) $(CCOPT) $(UUCICO)\$(@B).c

$(OBJ)\configur.o: $(LIBX)\configur.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@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\
        $(MAIL)\sysalias.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)\expire.o: $(RNEWS)\expire.c $(LIBX)\lib.h $(RNEWS)\active.h
        $(CC) $(CCOPT) $(RNEWS)\$(@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)\filebkup.o: $(LIBX)\filebkup.c $(LIBX)\lib.h $(LIBX)\hlib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\fopen.o: $(LIBX)\fopen.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\getargs.o: $(LIBX)\getargs.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\getdta.o: $(LIBX)\getdta.c $(LIBX)\lib.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)\history.o: $(RNEWS)\history.c $(LIBX)\lib.h $(RNEWS)\history.h
        $(CC) $(CCOPT) $(RNEWS)\$(@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)\hostrset.o: $(LIBX)\hostrset.c $(LIBX)\lib.h $(LIBX)\hlib.h\
        $(LIBX)\hostable.h $(LIBX)\security.h $(LIBX)\hostrset.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)\importng.o: $(LIBX)\importng.c $(LIBX)\lib.h $(LIBX)\importng.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\kanjicnv.o: $(LIBX)\kanjicnv.c $(LIBX)\lib.h $(LIBX)\kanjicnv.h\
        $(LIBX)\arbmath.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\lock.o: $(LIBX)\lock.c $(LIBX)\lock.h $(LIBX)\lib.h $(LIBX)\hlib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\logger.o: $(LIBX)\logger.c $(LIBX)\logger.h $(LIBX)\lib.h\
        $(LIBX)\hlib.h $(LIBX)\timestmp.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)\mkdir.o: $(LIBX)\mkdir.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\mkfilenm.o: $(LIBX)\mkfilenm.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\mkmbox.o: $(LIBX)\mkmbox.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\mktempnm.o: $(LIBX)\mktempnm.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@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)\normaliz.o: $(LIBX)\normaliz.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\pushpop.o: $(LIBX)\pushpop.c $(LIBX)\lib.h $(LIBX)\pushpop.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\printerr.o: $(LIBX)\printerr.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\printmsg.o: $(LIBX)\printmsg.c $(LIBX)\lib.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)\rename.o: $(LIBX)\rename.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\rnews.o: $(RNEWS)\rnews.c $(LIBX)\lib.h $(LIBX)\hlib.h\
        $(LIBX)\timestmp.h
        $(CC) $(CCOPT) $(RNEWS)\$(@B).c

$(OBJ)\safeio.o: $(LIBX)\safeio.c $(LIBX)\lib.h $(LIBX)\safeio.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\safeio2.o: $(LIBX)\safeio.c $(LIBX)\lib.h $(LIBX)\safeio.h
        $(CC) $(CCOPT) /DFAMILYAPI $(LIBX)\safeio.c

$(OBJ)\safeout.o: $(LIBX)\safeout.c $(LIBX)\lib.h $(LIBX)\safeio.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\safeout2.o: $(LIBX)\safeout.c $(LIBX)\lib.h $(LIBX)\safeio.h
        $(CC) $(CCOPT) /DFAMILYAPI $(LIBX)\safeout.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)\scrsize.o: $(LIBX)\scrsize.c $(LIBX)\lib.h $(LIBX)\scrsize.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\scrsize2.o: $(LIBX)\scrsize2.c $(LIBX)\lib.h $(LIBX)\scrsize.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\security.o: $(LIBX)\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) $(LIBX)\$(@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

$(OBJ)\sysalias.o: $(MAIL)\sysalias.c $(LIBX)\lib.h $(MAIL)\sysalias.h
        $(CC) $(CCOPT) $(MAIL)\$(@B).c

$(OBJ)\testulib.o: $(TEST)\testulib.c $(LIBX)\lib.h
        $(CC) $(CCOPT) -I$(UUCICO) $(TEST)\$(@B).c

$(OBJ)\strpool.o: $(LIBX)\strpool.c $(LIBX)\lib.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

# *--------------------------------------------------------------------*
# *     The timestamp module has a reference to this MAKEFILE,         *
# *     which insures whenever we change the version number the        *
# *     time stamp gets re-generated.                                  *
# *--------------------------------------------------------------------*

$(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)\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: $(UUCP)\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) $(UUCP)\$(@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: $(UUCP)\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) $(UUCP)\$(@B).c

$(OBJ)\uusub.o: $(UUCP)\uusub.c $(LIBX)\lib.h $(LIBX)\hostable.h $(LIBX)\security.h\
        $(LIBX)\hostatus.h $(LIBX)\timestmp.h
        $(CC) $(CCOPT) $(UUCP)\$(@B).c

$(OBJ)\uux.o: $(UUCP)\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) $(UUCP)\$(@B).c

$(OBJ)\uuxqt.o: $(UUCP)\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) $(UUCP)\$(@B).c

$(OBJ)\validcmd.o: $(LIBX)\validcmd.c $(LIBX)\lib.h $(LIBX)\security.h\
        $(LIBX)\hostable.h $(LIBX)\hostatus.h $(LIBX)\hlib.h\
        $(LIBX)\expath.h $(LIBX)\usertabl.h
        $(CC) $(CCOPT) $(LIBX)\$(@B).c

$(OBJ)\uuname.o: $(UUCP)\uuname.c $(LIBX)\getopt.h $(LIBX)\lib.h\
        $(LIBX)\timestmp.h
        $(CC) $(CCOPT) $(UUCP)\$(@B).c

$(OBJ)\fmt.o: $(UTIL)\fmt.c $(LIBX)\getopt.h $(LIBX)\lib.h\
        $(LIBX)\timestmp.h
        $(CC) $(CCOPT) $(UTIL)\$(@B).c

$(OBJ)\gensig.o: $(UTIL)\gensig.c $(LIBX)\getopt.h $(LIBX)\lib.h\
        $(LIBX)\timestmp.h
        $(CC) $(CCOPT) $(UTIL)\$(@B).c

$(OBJ)\novrstrk.o: $(UTIL)\novrstrk.c $(LIBX)\getopt.h $(LIBX)\lib.h\
        $(LIBX)\timestmp.h
        $(CC) $(CCOPT) $(UTIL)\$(@B).c

# *--------------------------------------------------------------------*
# *     Force a regeneration of the time stamp/version module.         *
# *--------------------------------------------------------------------*

regen:  $(LIBX)\timestmp.c
        - del $(OBJ)\timestmp.o

# *--------------------------------------------------------------------*
# *   This is a special case, the assembler module which handles       *
# *   our I/O to the serial port for the DOS version.                  *
# *--------------------------------------------------------------------*

$(OBJ)\commfifo.o: $(UUCICO)\commfifo.asm
        $(MASM) $(MASMOPTS) $(UUCICO)\$(@B) ,$@;

# *--------------------------------------------------------------------*
# *         Generate the source browser database for the PWB           *
# *--------------------------------------------------------------------*

$(MAKEFILE).bsc: $(SBRS)
        pwbrmake @<<
/o $(MAKEFILE).bsc $(SBRS)
<<

$(OBJ):
        - mkdir $(OBJ)
