#       Program:        mscmake                      15 May 1989
#       Author:         Andrew H. Derbyshire
#                       Kendra Electronic Wonderworks
#                       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) 1989-1994 by Kendra Electronic Wonderworks;
#       all rights reserved except those explicitly granted by
#       the UUPC/extended license.
#
#       nmk /nologo /s /f mscmake prodr
#       nmake /nologo /s /f mscmake prodp
#       nmake /nologo /s /f mscmake prodn
#
#       $Id: mscmake 1.63 1994/02/16 02:23:05 ahd Exp $
#
#       $Log: mscmake $
#         Revision 1.63  1994/02/16  02:23:05  ahd
#         Delete header include defs until we figure out why it doesn't work!
#
#         Revision 1.63  1994/02/16  02:23:05  ahd
#         Delete header include defs until we figure out why it doesn't work!
#
#         Revision 1.62  1994/02/14  01:02:17  ahd
#         Use external header makefile
#
#         Revision 1.61  1994/02/13  04:43:58  ahd
#         Add pnews command
#
#         Revision 1.60  1994/01/18  13:26:29  ahd
#         Go to version 1.12i
#         Add pnews.cmd to install script
#
#         Revision 1.59  1994/01/06  12:43:52  ahd
#         Version 1.12h
#
#         Revision 1.58  1994/01/04  05:46:48  ahd
#         Add missing suffix to NT lib names
#
#         Revision 1.57  1994/01/02  04:31:43  ahd
#         Go to version 1.12g
#
#         Revision 1.56  1994/01/01  18:55:46  ahd
#         Annual copyright update
#
#         Revision 1.55  1993/12/30  03:09:41  ahd
#         Make NT library list generic enough to work with original NT SDK
#
#         Revision 1.54  1993/12/29  03:29:19  dmwatt
#         Add suspend support to UUCICO
#         Add UUPORT in support of suspend functions
#         Make NT use multi-threaded libraries to allow clean aborts of UUCICO
#
#         Revision 1.52  1993/12/02  13:47:28  ahd
#         'e' protocol support
#
#         Revision 1.51  1993/11/30  04:16:57  ahd
#         Version 1.12f
#         Suppress warning from commented variable
#
#         Revision 1.50  1993/11/21  04:45:03  ahd
#         Add UUTRAF
#
#         Revision 1.49  1993/11/20  14:47:34  rommel
#         Add UUTRAF
#
#         Revision 1.48  1993/11/08  04:46:16  ahd
#         Make unique execute.c for OS/2
#
#         Revision 1.47  1993/11/06  17:53:21  rhg
#         Drive Drew nuts by submitting cosmetic changes mixed in with bug fixes
#
#         Revision 1.46  1993/10/31  11:55:32  ahd
#         Don't delete libraries if not in TMP directory
#         Delete libraries by name, don't delete all libraries in LIBDIR
#
#         Revision 1.45  1993/10/31  02:22:05  ahd
#         Restore auto-build of def file to insure version is included
#
#         Revision 1.44  1993/10/30  22:25:50  rommel
#         Add new modules genhist and inews
#
#         Revision 1.43  1993/10/28  00:17:05  ahd
#         Go to version 1.12e
#
#         Revision 1.42  1993/10/24  22:33:03  ahd
#         Add missing real mode executables, based on change from rhg
#
#         Revision 1.41  1993/10/24  12:48:06  ahd
#         Update CCOPT
#
#         Revision 1.40  1993/10/13  01:46:52  ahd
#         Go to 1.12d
#
#         Revision 1.39  1993/10/09  19:32:59  ahd
#         Correct path of uuportp.exe
#
#         Revision 1.38  1993/10/05  12:27:03  ahd
#         Begin the adventure of 1.12c

.SUFFIXES: .c .asm .zip .obj

# *--------------------------------------------------------------------*
# *     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.12i


# *--------------------------------------------------------------------*
# *                    Determine the OS de jour.                       *
# *--------------------------------------------------------------------*

!if "$(OS)" == ""                       # Already set under Windows NT
!if "$(OS2_SHELL)" != ""
!endif
!endif

foo:
        echo $(CC)

# *--------------------------------------------------------------------*
# *                  Windows NT generic make include file              *
# *--------------------------------------------------------------------*

!if "$(OS)" == "Windows_NT"
!include <ntwin32.mak>
!endif

# *--------------------------------------------------------------------*
# *            User specified include file (if specified)              *
# *--------------------------------------------------------------------*

!if "$(UUPCNMK)" != ""
!include $(UUPCNMK)
!endif

# *--------------------------------------------------------------------*
# *   The memory model to be built.  (Ignored by 32 bit compilers)     *
# *--------------------------------------------------------------------*

!if "$(MODEL)" == ""
MODEL   = M
!endif

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

MAIL    = $(SRCSLASH)mail
UTIL    = $(SRCSLASH)util
UUCP    = $(SRCSLASH)uucp
RNEWS   = $(SRCSLASH)rnews
UULIB   = $(SRCSLASH)lib
TEST    = $(SRCSLASH)test
UUCICO  = $(SRCSLASH)uucico
UUTRAF  = $(SRCSLASH)uutraf
SCRIPTS = $(SRCSLASH)scripts

!if "$(OBJ)" == ""
!if "$(OS)" == "Windows_NT"
OBJ     = $(SRCSLASH)objmsnt
!else
OBJ     = $(SRCSLASH)objms$(MODEL)
!endif
!endif

!if "$(ERASE)" == ""
!if "$(OS)" == "OS/2"
ERASE=del /f
!else
ERASE=del
!endif
!endif

!if "$(SBR)" == ""
SBR     = $(SRCSLASH)sbr
!endif

!if "$(PRODP)" == ""
PRODP   = \uupc\os2bin
!endif

!if "$(PRODR)" == ""
PRODR   = \uupc\bin
!endif

!if "$(PRODN)" == ""
PRODN   = \uupc\ntbin
!endif

!if "$(LIBDIR)" == ""
LIBDIR=$(TMP)
!endif

!if "$(ZIPDIR)" == ""
ZIPDIR=$(SRCSLASH)$(VERS)
!endif

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

ZIPPREFIXX=UPC$(VERS:.=)
!if "$(ZIPPREFIX)" == ""
ZIPPREFIX=$(ZIPDIR)\$(ZIPPREFIXX:C1=C)
!endif

WNTZIPV1 = $(ZIPPREFIX)n1.zip
WNTZIPV2 = $(ZIPPREFIX)n2.zip
WNTZIPV3 = $(ZIPPREFIX)n3.zip
OS2ZIPV2 = $(ZIPPREFIX)11.zip
OS2ZIPV3 = $(ZIPPREFIX)12.zip
OS2ZIPV4 = $(ZIPPREFIX)13.zip
LIBCOMM  = $(LIBDIR)\$(MODEL)uupcmsc.lib
LIBNT    = $(LIBDIR)\uupcnt.lib
LIBOS2   = $(LIBDIR)\$(MODEL)uupcos2.lib
LIBDOS   = $(LIBDIR)\$(MODEL)uupcdos.lib
DEFFILE  = $(SRCSLASH)UUPCOS2P.DEF

WORKFILE = $(LIBDIR)\UUPCTEMP.TMP

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

#       You need to add MYUULIBS=OLDNAMES.LIB to your environment
#       or MSCMAKE include file to build under NT's Visual C++

!if "$(NTLIBS)" == ""
NTLIBS=$(LIBCOMM) $(LIBNT) $(conlibsmt) ADVAPI32.lib WSOCK32.lib $(MYUULIBS)
!endif

!if "$(OS2LIBS)" == ""
OS2LIBS=$(MODEL)libcep+$(LIBCOMM)+$(LIBOS2)+os2
!endif

!if "$(DOSLIBS)" == ""
DOSLIBS=$(MODEL)libce+$(LIBCOMM)+$(LIBDOS)
!endif

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

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

LIBDOSLIST= $(OBJ)\ndir.obj $(OBJ)\printerr.obj $(OBJ)\ssleep.obj\
            $(OBJ)\getdta.obj $(OBJ)\safeio.obj $(OBJ)\safeout.obj\
            $(OBJ)\scrsize.obj $(OBJ)\trumpet.obj $(OBJ)\import.obj \
            $(OBJ)\execute.obj
LIBOS2LIST= $(OBJ)\ndiros2.obj $(OBJ)\printerr.obj $(OBJ)\ssleep2.obj\
            $(OBJ)\safeio2.obj $(OBJ)\safeout2.obj $(OBJ)\scrsize2.obj\
            $(OBJ)\trumpet2.obj $(OBJ)\import2.obj  $(OBJ)\pos2err.obj \
            $(OBJ)\execute2.obj

LIBNTLIST=  $(OBJ)\ndirnt.obj $(OBJ)\printerr.obj $(OBJ)\ssleep.obj\
            $(OBJ)\safeio.obj $(OBJ)\safeout.obj $(OBJ)\scrsiznt.obj\
            $(OBJ)\setstdin.obj $(OBJ)\trumpet.obj $(OBJ)\import.obj\
            $(OBJ)\pnterr.obj $(OBJ)\execute.obj

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

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

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

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

RNEWSOBJ = $(OBJ)\rnews.obj $(OBJ)\history.obj $(OBJ)\idx.obj $(OBJ)\hdbm.obj
EXPIREOBJ = $(OBJ)\expire.obj $(OBJ)\history.obj $(OBJ)\idx.obj $(OBJ)\hdbm.obj
GENHISTOBJ = $(OBJ)\genhist.obj $(OBJ)\history.obj $(OBJ)\idx.obj $(OBJ)\hdbm.obj
INEWSOBJ = $(OBJ)\inews.obj

RMAILOBJ = $(OBJ)\address.obj $(OBJ)\rmail.obj $(OBJ)\sysalias.obj \
           $(OBJ)\deliver.obj

UUCICOOBJ1 = $(OBJ)\checktim.obj $(OBJ)\dcp.obj $(OBJ)\dcpfpkt.obj \
             $(OBJ)\dcpgpkt.obj $(OBJ)\dcplib.obj $(OBJ)\dcpstats.obj\
             $(OBJ)\dcpxfer.obj
UUCICOOBJ2 = $(OBJ)\modem.obj $(OBJ)\script.obj $(OBJ)\uucico.obj
UUCICOPOBJ3 = $(OBJ)\dcpsys2.obj $(OBJ)\dcpepkt.obj $(OBJ)\dcptpkt.obj \
              $(OBJ)\nbstime2.obj $(OBJ)\ulibos2.obj\
              $(OBJ)\commlib2.obj $(OBJ)\ulibnmp.obj\
              $(OBJ)\prtyos2.obj $(OBJ)\suspend2.obj
UUCICOROBJ3 = $(OBJ)\dcpsys.obj \
              $(OBJ)\nbstime.obj $(OBJ)\ulib.obj $(OBJ)\ulibfs.obj  \
              $(OBJ)\ulib14.obj $(OBJ)\fossil.obj  \
              $(OBJ)\commlib.obj $(OBJ)\comm.obj $(OBJ)\suspend.obj
UUCICONOBJ3 = $(OBJ)\catcheru.obj $(OBJ)\commlib.obj $(OBJ)\dcpepkt.obj \
              $(OBJ)\dcpsys.obj $(OBJ)\dcptpkt.obj $(OBJ)\nbstime.obj   \
              $(OBJ)\prtynt.obj $(OBJ)\pwserr.obj $(OBJ)\suspendn.obj   \
              $(OBJ)\ulibip.obj $(OBJ)\ulibnt.obj

RNOBJ1=$(OBJ)\addng.obj $(OBJ)\art.obj $(OBJ)\artio.obj $(OBJ)\artsrch.obj\
       $(OBJ)\backpage.obj $(OBJ)\bits.obj $(OBJ)\cheat.obj $(OBJ)\final.obj
RNOBJ2=$(OBJ)\head.obj $(OBJ)\help.obj $(OBJ)\init.obj $(OBJ)\intrp.obj\
       $(OBJ)\kfile.obj $(OBJ)\last.obj $(OBJ)\ng.obj $(OBJ)\ngdata.obj
RNOBJ3=$(OBJ)\ngsrch.obj $(OBJ)\ngstuff.obj $(OBJ)\only.obj $(OBJ)\rcln.obj\
       $(OBJ)\rcstuff.obj $(OBJ)\respond.obj $(OBJ)\rn.obj $(OBJ)\search.obj\
       $(OBJ)\sw.obj $(OBJ)\term.obj $(OBJ)\util.obj $(OBJ)\uudecode.obj \
       $(OBJ)\rnpclib.obj
RNOBJ=$(RNOBJ1) $(RNOBJ2) $(RNOBJ3)

NEWSETUPOBJ=$(OBJ)\newsetup.obj $(OBJ)\rnlib.obj

UUSUBOBJ = $(OBJ)\uusub.obj

UUSTATOBJ = $(OBJ)\uustat.obj

UUTRAFOBJ = $(OBJ)\uutraf.obj $(OBJ)\version.obj $(OBJ)\alist.obj\
            $(OBJ)\list.obj $(OBJ)\llist.obj

UUXQTOBJ = $(OBJ)\uuxqt.obj

UUXOBJ = $(OBJ)\uux.obj

POLLNOBJ  = $(OBJ)\uupoll.obj
POLLPOBJ  = $(OBJ)\uupoll2.obj
POLLROBJ  = $(OBJ)\uupoll.obj

# *--------------------------------------------------------------------*
# *      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 uuportp.exe
EXECN   = mailn.exe rmailn.exe rnewsn.exe\
          uupolln.exe uucicon.exe uucpn.exe\
          uusubn.exe uustatn.exe uuxqtn.exe uuxn.exe uuportn.exe

INSTALLP =$(INSTALLP2) $(INSTALLP3) $(INSTALLP4) $(INSTALLPS)
INSTALLR =$(INSTALLR2) $(INSTALLR3) $(INSTALLR4) $(INSTALLRS)

INSTALLR2=$(PRODR)\mail.exe $(PRODR)\rmail.exe $(PRODR)\uuxqt.exe\
          $(PRODR)\uucico.exe
INSTALLR3=$(PRODR)\uucp.exe $(PRODR)\uuname.exe $(PRODR)\uupoll.exe\
          $(PRODR)\uustat.exe $(PRODR)\uusub.exe $(PRODR)\uuport.exe\
          $(PRODR)\uux.exe $(PRODR)\gensig.exe $(PRODR)\novrstrk.exe\
          $(PRODR)\fmt.exe $(PRODR)\comm34.exe
INSTALLRS=$(PRODR)\su.bat $(PRODR)\uuio.bat $(PRODR)\uuclean.bat\
          $(PRODR)\waiting.bat
INSTALLR4=$(PRODR)\rnews.exe $(PRODR)\expire.exe \
          $(PRODR)\genhist.exe $(PRODR)\inews.exe
#         $(PRODR)\rn.exe $(PRODR)\newsetup.exe

INSTALLP2=$(PRODP)\mail.exe $(PRODP)\mail.ico \
          $(PRODP)\rmail.exe $(PRODP)\uucico.exe $(PRODP)\uucico.ico \
          $(PRODP)\uuxqt.exe
INSTALLP3=$(PRODP)\uucp.exe $(PRODP)\uuname.exe $(PRODP)\uupoll.exe\
          $(PRODP)\uustat.exe $(PRODP)\uusub.exe $(PRODP)\uuport.exe\
          $(PRODP)\uux.exe $(PRODP)\gensig.exe $(PRODP)\novrstrk.exe \
          $(PRODP)\fmt.exe
INSTALLPS=$(PRODP)\pnews.cmd \
          $(PRODP)\su.cmd $(PRODP)\uuio.cmd $(PRODP)\uuclean.cmd\
          $(PRODP)\waiting.cmd $(PRODP)\mailchek.cmd $(PRODP)\getuupc.cmd
INSTALLP4=$(PRODP)\uutraf.exe  $(PRODP)\rnews.exe $(PRODP)\expire.exe \
          $(PRODP)\genhist.exe $(PRODP)\inews.exe
#         $(PRODP)\rn.exe $(PRODP)\newsetup.exe

INSTALLN2=$(PRODN)\mail.exe $(PRODN)\rmail.exe $(PRODN)\uucico.exe\
          $(PRODN)\uuxqt.exe $(PRODN)\uuport.exe
INSTALLN3=$(PRODN)\uucp.exe $(PRODN)\uuname.exe $(PRODN)\uupoll.exe\
          $(PRODN)\uustat.exe $(PRODN)\uusub.exe $(PRODN)\uux.exe\
          $(PRODN)\gensig.exe $(PRODN)\novrstrk.exe $(PRODN)\fmt.exe

INSTALLNS=$(PRODN)\su.cmd $(PRODN)\uuio.cmd $(PRODN)\uuclean.cmd\
          $(PRODN)\waiting.cmd
INSTALLN4=$(PRODN)\uutraf.exe $(PRODN)\rnews.exe $(PRODN)\expire.exe\
          $(PRODN)\genhist.exe $(PRODN)\inews.exe
#         $(PRODN)\rn.exe $(PRODN)\newsetup.exe
INSTALLN  = $(INSTALLN1) $(INSTALLN2) $(INSTALLN3) $(INSTALLNS) $(INSTALLN4)

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

# *--------------------------------------------------------------------*
# *     This needs to be expanded too *all* the OBJ files ... but      *
# *     not today, as the Wonderworks doesn't use it.                  *
# *--------------------------------------------------------------------*
SBRS = $(LIBDOSLIST:obj=sbr)

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

!if "$(MAKEFILE)" == ""
MAKEFILE = $(SRCSLASH)mscmake
!endif

README=    docs\00readme.now

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

!if "$(LINKER)" == ""
!if "$(OS)" == "Windows_NT"
LINKER = $(link)
!else
LINKER  = link
!endif
!endif

!if "$(LINKPOPT)" == ""
LINKPOPT = /exepack /far /noignorecase /nod /batch
!endif

!if "$(LINKNOPT)" == ""
LINKNOPT = $(conflags) $(ldebug) /NODEFAULTLIB
!endif

#       No /exepack under DOS, DOS 5 can be confused by it.

!if "$(LINKROPT)" == ""
LINKROPT = /batch /far /noignorecase /stack:20000
!endif

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

!if "$(MASM)" == ""
MASM    = masm.exe
!endif

!if "$(MASMOPTS)" == ""
#MASMOPTS = /DUUPC /DDEBUG /n /v /t /z /W2 /ZD /Mx
MASMOPTS = /DUUPC /n /v /t /z /W2 /ZI /ZD /Mx
!endif

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

!if "$(CC)" == ""
CC      = cl
!endif

!if "$(OS)" == "Windows_NT"
!if "$(CCOPT)" == ""
CCOPT   = $(cflags) $(cvarsmt) $(cdebug) /MT -I$(UULIB) /Fo$@
!endif

!else

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

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

!endif

{$(UULIB)}.c{$(OBJ)}.obj:
        $(CC) $(CCOPT) $<

{$(MAIL)}.c{$(OBJ)}.obj:
        $(CC) $(CCOPT) $<

{$(RN)}.c{$(OBJ)}.obj:
        $(CC) $(CCOPT) /W3 $<

{$(RNEWS)}.c{$(OBJ)}.obj:
        $(CC) $(CCOPT) $<

{$(TEST)}.c{$(OBJ)}.obj:
        $(CC) $(CCOPT) $<

{$(UUCICO)}.c{$(OBJ)}.obj:
        $(CC) $(CCOPT) $<

{$(UUCP)}.c{$(OBJ)}.obj:
        $(CC) $(CCOPT) $<

{$(UTIL)}.c{$(OBJ)}.obj:
        $(CC) $(CCOPT) $<

{$(UUTRAF)}.c{$(OBJ)}.obj:
        $(CC) -DSYSVR3 -DUUPC -I$(UUTRAF) $(CCOPT) $<

# *--------------------------------------------------------------------*
# *            ZIP, for creating the distributed archive               *
# *--------------------------------------------------------------------*

!if "$(ZIP)" == ""
ZIP     = zip
!endif

!if "$(ZIPOPT1)" == ""
ZIPOPT1 = -o -9 -u -@
!endif

!if "$(ZIPOPT2)" == ""
ZIPOPT2 = -j $(ZIPOPT1)
!endif

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

!if "$(OS)" == "Windows_NT"
testN:  $(OBJ) mailn.exe rmailn.exe uucicon.exe uuportn.exe\
        uupolln.exe uucpn.exe uusubn.exe uustatn.exe uuxn.exe uuxqtn.exe\
        uunamen.exe gensign.exe expiren.exe rnewsn.exe\
        genhistn.exe inewsn.exe
#       rnn.exe newsetpn.exe
!if  "$(LIBDIR)" == "$(TMP)"
        - $(ERASE) $(LIBCOMM)
        - $(ERASE) $(LIBOS2)
!endif
!else
testP:  $(OBJ) mailp.exe rmailp.exe uucicop.exe\
        uupollp.exe uucpp.exe uusubp.exe uustatp.exe uuxp.exe uuxqtp.exe\
        uunamep.exe uuportp.exe gensigp.exe expirep.exe rnewsp.exe \
        genhistp.exe inewsp.exe
#       rnp.exe newsetpp.exe
!if  "$(LIBDIR)" == "$(TMP)"
        - if exist $(LIBCOMM) $(ERASE) $(LIBCOMM)
        - if exist $(LIBNT) $(ERASE) $(LIBNT)
!endif

# *--------------------------------------------------------------------*
# *   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 \
        uunamer.exe fmtr.exe gensigr.exe novrstrr.exe comm34r.exe \
        genhistr.exe inewsr.exe
#       rnr.exe newsetpr.exe
        - $(ERASE) $(LIBCOMM)
        - $(ERASE) $(LIBDOS)
!endif

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

prodn:  $(OBJ) $(INSTALLN) regen
!if  "$(LIBDIR)" == "$(TMP)"
        - $(ERASE) $(LIBCOMM)
        - $(ERASE) $(LIBNT)
!endif

prodp:  $(OBJ) $(INSTALLP) regen
!if  "$(LIBDIR)" == "$(TMP)"
        - $(ERASE) $(LIBCOMM)
        - $(ERASE) $(LIBOS2)
!endif

prodr:  $(OBJ) $(INSTALLR)
!if  "$(LIBDIR)" == "$(TMP)"
        - $(ERASE) $(LIBCOMM)
        - $(ERASE) $(LIBOS2)
!endif

installn:  $(OBJ) $(INSTALLN) $(WNTZIPV1) $(WNTZIPV2)  $(WNTZIPV3)
!if  "$(LIBDIR)" == "$(TMP)"
        - $(ERASE) $(LIBCOMM)
        - $(ERASE) $(LIBNT)
!endif

installp:  $(OBJ) $(OS2ZIPV2) $(OS2ZIPV3)  $(OS2ZIPV4)
!if  "$(LIBDIR)" == "$(TMP)"
        - $(ERASE) $(LIBCOMM)
        - $(ERASE) $(LIBOS2)
!endif

installr:  prodr

!if "$(OS)" == "Windows_NT"
install:        clean zip

zip:
        nmake -f $(MAKEFILE) NODEBUG=1 installn
!else
zip:    installp
!endif

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

clean:  xclean
        - $(ERASE) $(SRCSLASH)*.bak
        - $(ERASE) *.map
        - $(ERASE) $(WORKFILE)

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

xclean:
        - $(ERASE) $(OBJ)\*.obj
        - $(ERASE) $(OBJ)\*.exe
        - $(ERASE) $(LIBCOMM)
        - $(ERASE) $(LIBNT)
        - $(ERASE) $(LIBOS2)
        - $(ERASE) $(LIBDOS)
        - $(ERASE) $(SRCSLASH)*.obj
        - $(ERASE) $(SRCSLASH)*.exe
        - $(ERASE) $(SBR)\*.sbr

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

$(PRODR)\comm34.exe: comm34r.exe
        - $(ERASE) $@
        move $? $@

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

$(PRODR)\fmt.exe: fmtr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\genhist.exe: genhistr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\gensig.exe: gensigr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\inews.exe: inewsr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\mail.exe: mailr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\novrstrk.exe: novrstrr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\rmail.exe: rmailr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\rn.exe: rnr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\newsetup.exe: newsetpr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\rnews.exe: rnewsr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\uucico.exe: uucicor.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\uucp.exe: uucpr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\uuname.exe: uunamer.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\uupoll.exe: uupollr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\uuport.exe: uuportr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\uustat.exe: uustatr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\uusub.exe: uusubr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\uutraf.exe: uutrafr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\uux.exe: uuxr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\uuxqt.exe: uuxqtr.exe
        - $(ERASE) $@
        move $? $@

$(PRODR)\su.bat: $(SCRIPTS)\su.bat
        copy $? $@

$(PRODR)\uuio.bat: $(SCRIPTS)\uuio.bat
        copy $? $@

$(PRODR)\uuclean.bat: $(SCRIPTS)\uuclean.bat
        copy $? $@

$(PRODR)\waiting.bat: $(SCRIPTS)\waiting.bat
        copy $? $@

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

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

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

$(PRODP)\genhist.exe: genhistp.exe
        - $(ERASE) $@
        move $? $@

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

$(PRODP)\inews.exe: inewsp.exe
        - $(ERASE) $@
        move $? $@

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

$(PRODP)\newsetup.exe: newsetpp.exe
        - $(ERASE) $@
        move $? $@

$(PRODP)\novrstrk.exe: novrstrp.exe
        - $(ERASE) $@
        move $? $@

$(PRODP)\rn.exe: rnp.exe
        - $(ERASE) $@
        move $? $@

$(PRODP)\rmail.exe: rmailp.exe
        - $(ERASE) $@
        move $? $@

$(PRODP)\rnews.exe: rnewsp.exe
        - $(ERASE) $@
        move $? $@

$(PRODP)\uucico.exe: uucicop.exe
        - $(ERASE) $@
        move $? $@

$(PRODP)\uucp.exe: uucpp.exe
        - $(ERASE) $@
        move $? $@

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

$(PRODP)\uupoll.exe: uupollp.exe
        - $(ERASE) $@
        move $? $@

$(PRODP)\uuport.exe: uuportp.exe
        - $(ERASE) $@
        move $? $@

$(PRODP)\uustat.exe: uustatp.exe
        - $(ERASE) $@
        move $? $@

$(PRODP)\uusub.exe: uusubp.exe
        - $(ERASE) $@
        move $? $@

$(PRODP)\uutraf.exe: uutrafp.exe
        - $(ERASE) $@
        move $? $@

$(PRODP)\uux.exe: uuxp.exe
        - $(ERASE) $@
        move $? $@

$(PRODP)\uuxqt.exe: uuxqtp.exe
        - $(ERASE) $@
        move $? $@

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

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

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

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

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

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

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

# *--------------------------------------------------------------------*
# *       Protected mode (Windows/NT) production modules               *
# *--------------------------------------------------------------------*

$(PRODN)\expire.exe: expiren.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\fmt.exe: fmtn.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\genhist.exe: genhistn.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\gensig.exe: gensign.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\inews.exe: inewsn.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\mail.exe: mailn.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\novrstrk.exe: novrstrn.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\rmail.exe: rmailn.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\rnews.exe: rnewsn.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\uucp.exe: uucpn.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\uucico.exe: uucicon.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\uupoll.exe: uupolln.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\uusub.exe: uusubn.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\uuport.exe: uuportn.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\uutraf.exe: uutrafn.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\uustat.exe: uustatn.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\uuxqt.exe: uuxqtn.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\uux.exe: uuxn.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\uuname.exe: uunamen.exe
        - $(ERASE) $@
        move $? $@

$(PRODN)\uuio.bat: $(SCRIPTS)\uuio.bat
        copy $? $@

$(PRODN)\waiting.bat: $(SCRIPTS)\waiting.bat
        copy $? $@

$(PRODN)\su.bat: $(SCRIPTS)\su.bat
        copy $? $@

$(PRODN)\mailchek.bat: $(SCRIPTS)\mailchek.bat
        copy $? $@

$(PRODN)\uuclean.bat: $(SCRIPTS)\uuclean.bat
        copy $? $@

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

comm34r.exe:      $(OBJ)\comm34.obj  $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(OBJ)\comm34.obj
$@,NUL.,$(DOSLIBS);
<<

expiren.exe: $(EXPIREOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(EXPIREOBJ) $(NTLIBS)

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

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

fmtn.exe: $(OBJ)\fmt.obj $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(OBJ)\fmt.obj $(NTLIBS)

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

fmtr.exe:      $(OBJ)\fmt.obj  $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(OBJ)\fmt.obj
$@,NUL.,$(DOSLIBS);
<<

genhistn.exe: $(GENHISTOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(GENHISTOBJ) $(NTLIBS)

genhistp.exe: $(DEFFILE) $(GENHISTOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) $(GENHISTOBJ),$@,NUL.,$(OS2LIBS),$(DEFFILE)

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

gensign.exe: $(OBJ)\gensig.obj $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(OBJ)\gensig.obj $(NTLIBS)

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

gensigr.exe:     $(OBJ)\gensig.obj $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(OBJ)\gensig.obj
$@,NUL.,$(DOSLIBS);
<<

inewsn.exe: $(INEWSOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(INEWSOBJ) $(NTLIBS)

inewsp.exe: $(DEFFILE) $(INEWSOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) $(INEWSOBJ),$@,NUL.,$(OS2LIBS),$(DEFFILE)

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

mailn.exe: $(MAILNOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(NTLIBS) $(MAILNOBJ)

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

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

newsetpn.exe: $(NEWSETUPOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(NEWSETUPOBJ) $(NTLIBS)

newsetpp.exe:     $(DEFFILE) $(NEWSETUPOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(NEWSETUPOBJ)
$@,NUL.,$(OS2LIBS)
$(DEFFILE)
<<

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

novrstrn.exe: $(OBJ)\novrstrk.obj $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(OBJ)\novrstrk.obj $(NTLIBS)

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

novrstrr.exe:      $(OBJ)\novrstrk.obj  $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(OBJ)\novrstrk.obj
$@,NUL.,$(DOSLIBS);
<<

rmailn.exe: $(RMAILOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(RMAILOBJ) $(NTLIBS)

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

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

rnn.exe: $(RNOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(RNOBJ1) $(RNOBJ2) $(RNOBJ3) $(NTLIBS)

rnp.exe:        $(DEFFILE) $(RNOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(RNOBJ1)+
$(RNOBJ2)+
$(RNOBJ3)
$@,NUL.,$(OS2LIBS)
$(DEFFILE)
<<

rnr.exe:        $(RNOBJ) $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(RNOBJ1)+
$(RNOBJ2)+
$(RNOBJ3)
$@,NUL.,$(DOSLIBS);
<<

rnewsn.exe: $(RNEWSOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(RNEWSOBJ) $(NTLIBS)

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

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

uucicon.exe: $(UUCICOOBJ1) $(UUCICOOBJ2) $(UUCICONOBJ3) \
                  $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(NTLIBS) $(UUCICOOBJ1) $(UUCICOOBJ2) \
           $(UUCICONOBJ3)

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

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

uucpn.exe: $(UUCPOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(UUCPOBJ) $(NTLIBS)

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

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

uunamen.exe: $(OBJ)\uuname.obj $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(OBJ)\uuname.obj $(NTLIBS)

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

uunamer.exe:      $(OBJ)\uuname.obj  $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(OBJ)\uuname.obj
$@,NUL.,$(DOSLIBS);
<<

uupolln.exe: $(POLLNOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(POLLNOBJ) $(NTLIBS)

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

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

uuportn.exe: $(OBJ)\uuport.obj $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(OBJ)\uuport.obj $(NTLIBS)

uuportr.exe:      $(OBJ)\uuport.obj  $(LIBCOMM) $(LIBDOS)
        $(LINKER) $(LINKROPT) @<<
$(OBJ)\uuport.obj
$@,NUL.,$(DOSLIBS);
<<

uuportp.exe:     $(DEFFILE)  $(OBJ)\uuport.obj $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(OBJ)\uuport.obj
$@,NUL.,$(OS2LIBS)
$(DEFFILE)
<<

uustatn.exe: $(UUSTATOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(UUSTATOBJ) $(NTLIBS)

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

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

uusubn.exe: $(UUSUBOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(UUSUBOBJ) $(NTLIBS)

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

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

uutrafn.exe: $(UUTRAFOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(UUTRAFOBJ) $(NTLIBS)

uutrafp.exe:      $(DEFFILE) $(UUTRAFOBJ) $(LIBCOMM) $(LIBOS2)
        $(LINKER) $(LINKPOPT) @<<
$(UUTRAFOBJ)
$@,NUL.,$(OS2LIBS)
$(DEFFILE)
<<

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

uuxn.exe: $(UUXOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(UUXOBJ) $(NTLIBS)

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

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

uuxqtn.exe: $(UUXQTOBJ) $(LIBCOMM) $(LIBNT)
        $(LINKER) $(LINKNOPT) /OUT:$@ $(UUXQTOBJ) $(NTLIBS)

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

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

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

# *--------------------------------------------------------------------*
# *                        Clean up after rn                           *
# *--------------------------------------------------------------------*

rn-clean:
                - $(ERASE) $(RNOBJ)
                - $(ERASE) rnp.exe

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

$(OS2ZIPV2):  $(INSTALLP2) $(README)
       - mkdir $(SRCSLASH)$(VERS)
       -12 $(ZIP) $(ZIPOPT2) $@ < <<
       $(?: =^
       )
<<
       $(ZIP) -z $@  < <<
Kendra Electronic Wonderworks: UUPC/extended $(VERS) OS/2 executables (1 of 3)

Changes and Compilation Copyright (c) 1989-1994 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):  $(INSTALLP3) $(INSTALLPS) $(README)
       - mkdir $(SRCSLASH)$(VERS)
       -12 $(ZIP) $(ZIPOPT2) $@ < <<
       $(?: =^
       )
<<
       $(ZIP) -z $@  < <<
Kendra Electronic Wonderworks: UUPC/extended $(VERS) OS/2 executables (2 of 3)

Changes and Compilation Copyright (c) 1989-1994 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):  $(INSTALLP4) $(README)
       - mkdir $(SRCSLASH)$(VERS)
       -12 $(ZIP) $(ZIPOPT2) $@ < <<
       $(?: =^
       )
<<
       $(ZIP) -z $@  < <<
Kendra Electronic Wonderworks: UUPC/extended $(VERS) OS/2 executables (3 of 3)

Changes and Compilation Copyright (c) 1989-1994 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.
<<

# *--------------------------------------------------------------------*
# *                       Windows/NT ZIP files                         *
# *--------------------------------------------------------------------*

$(WNTZIPV1):  $(INSTALLN2) $(README)
       - mkdir $(SRCSLASH)$(VERS)
       -12 $(ZIP) $(ZIPOPT2) $@ < <<
       $(?: =^
       )
<<
       $(ZIP) -z $@  < <<
Kendra Electronic Wonderworks: UUPC/extended $(VERS) Win NT executables (1 of 3)

Special credit to David M. Watt for performing the Windows NT port.

Changes and Compilation Copyright (c) 1989-1994 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.
<<

$(WNTZIPV2):  $(INSTALLN3) $(INSTALLNS) $(README)
       - mkdir $(SRCSLASH)$(VERS)
       -12 $(ZIP) $(ZIPOPT2) $@ < <<
       $(?: =^
       )
<<
       $(ZIP) -z $@  < <<
Kendra Electronic Wonderworks: UUPC/extended $(VERS) Win NT exe

Special credit to David M. Watt for performing the Windows NT port.

Changes and Compilation Copyright (c) 1989-1994 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.
<<

$(WNTZIPV3):  $(INSTALLN4) $(README)
       - mkdir $(SRCSLASH)$(VERS)
       -12 $(ZIP) $(ZIPOPT2) $@ < <<
       $(?: =^
       )
<<
       $(ZIP) -z $@  < <<
Kendra Electronic Wonderworks: UUPC/extended $(VERS) Win NT executables (3 of 3)

Special credit to David M. Watt for performing the Windows NT port.

Changes and Compilation Copyright (c) 1989-1994 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                      *
# *--------------------------------------------------------------------*

!if "$(OS)" == "Windows_NT"

$(LIBCOMM): $(LIBLIST)
         lib32 /out:$@ $(LIBLIST)

!else
$(LIBCOMM): $(LIBLIST)
        lib /noignorecase $@ @<<
-+$(?: =&^
-+)
nul;
<<

!endif

$(LIBDOS): $(LIBDOSLIST)
        lib /noignorecase $@ @<<
-+$(?: =&^
-+)
nul;
<<

$(LIBOS2): $(LIBOS2LIST)
        lib /noignorecase $@ @<<
-+$(?: =&^
-+)
nul;
<<

$(LIBNT): $(LIBNTLIST)
        lib32 /out:$@ $(LIBNTLIST)

# *--------------------------------------------------------------------*
# *                Compile the various object files.                   *
# *--------------------------------------------------------------------*

$(OBJ)\catcheru.obj: $(UULIB)\catcher.c $(UULIB)\lib.h $(UULIB)\catcher.h \
        $(UULIB)\timestmp.h $(UULIB)\safeio.h
        $(CC) $(CCOPT) /DUUCICO $(UULIB)\$(@B:u=).c

$(OBJ)\commlib2.obj:  $(UUCICO)\commlib.c $(UUCICO)\commlib.h $(UULIB)\lib.h
        $(CC) $(CCOPT) /DFAMILYAPI $(UUCICO)\$(@B:2=).c

$(OBJ)\dcpsys2.obj:  $(UUCICO)\dcpsys.c $(UUCICO)\dcpsys.h $(UULIB)\lib.h
        $(CC) $(CCOPT) /DFAMILYAPI $(UUCICO)\$(@B:2=).c

$(OBJ)\execute2.obj: $(UULIB)\execute.c $(UULIB)\lib.h $(UULIB)\execute.h
        $(CC) $(CCOPT) /DFAMILYAPI $(UULIB)\$(@B:2=).c

$(OBJ)\mlib2.obj: $(MAIL)\mlib.c $(UULIB)\lib.h $(UULIB)\hlib.h
        $(CC) $(CCOPT) /DFAMILYAPI $(MAIL)\$(@B:2=).c

$(OBJ)\import2.obj: $(UULIB)\import.c $(UULIB)\lib.h $(UULIB)\import.h
        $(CC) $(CCOPT) /DFAMILYAPI $(UULIB)\$(@B:2=).c

$(OBJ)\nbstime2.obj:  $(UUCICO)\nbstime.c $(UULIB)\lib.h $(UULIB)\arpadate.h\
        $(UUCICO)\dcp.h $(UUCICO)\dcpsys.h $(UULIB)\hostable.h\
        $(UUCICO)\nbstime.h $(UUCICO)\script.h $(UULIB)\security.h\
        $(UUCICO)\ulib.h
        $(CC) $(CCOPT) /DFAMILYAPI $(UUCICO)\$(@B:2=).c

$(OBJ)\safeio2.obj: $(UULIB)\safeio.c $(UULIB)\lib.h $(UULIB)\safeio.h
        $(CC) $(CCOPT) /DFAMILYAPI $(UULIB)\$(@B:2=).c

$(OBJ)\safeout2.obj: $(UULIB)\safeout.c $(UULIB)\lib.h $(UULIB)\safeio.h
        $(CC) $(CCOPT) /DFAMILYAPI $(UULIB)\$(@B:2=).c

$(OBJ)\ssleep2.obj: $(UULIB)\ssleep.c $(UULIB)\lib.h $(UULIB)\ssleep.h
        $(CC) $(CCOPT) /DFAMILYAPI $(UULIB)\$(@B:2=).c

$(OBJ)\trumpet2.obj: $(UULIB)\trumpet.c $(UULIB)\lib.h $(UULIB)\trumpet.h
        $(CC) $(CCOPT) /DFAMILYAPI $(UULIB)\$(@B:2=).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): $(MAKEFILE) $(REGEN)

$(UULIB)\win32ver.h: $(MAKEFILE) $(REGEN)
        copy << $@
/*--------------------------------------------------------------------*/
/*         DO NOT EDIT -- AUTOMATICALLY GENERATED BY MAKEFILE         */
/*--------------------------------------------------------------------*/

#define UUPCV "$(VERS)"         /* UUPC/extended version number */
<<

$(OBJ)\uupoll2.obj: $(UTIL)\uupoll.c $(UULIB)\getopt.h $(UULIB)\lib.h\
        $(UULIB)\timestmp.h $(UULIB)\ssleep.h $(UULIB)\arpadate.h
        $(CC) $(CCOPT) /DFAMILYAPI $(UTIL)\$(@B:2=).c

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

regen:  $(UULIB)\timestmp.c
        - $(ERASE) $(OBJ)\timestmp.obj

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

$(OBJ)\comm.obj: $(UUCICO)\comm.asm
        $(MASM) $(MASMOPTS) $(UUCICO)\$(@B) ,$@;

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

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

$(OBJ):
        - mkdir $(OBJ)

# *--------------------------------------------------------------------*
# *      Definition file.  Built dynamically so it automatically       *
# *      includes the correct version nuber.                           *
# *--------------------------------------------------------------------*

$(DEFFILE):     $(MAKEFILE)
       copy << $@
name windowcompat newfiles
Description 'UUPC/extended $(VERS), Changes Copyright (c) 1989-1994 Kendra Electronic Wonderworks, All Rights Reserved'
stacksize 0x3000
exetype OS2
<<

