home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / upc12bs1.zip / mscmake < prev   
Text File  |  1993-10-04  |  44KB  |  1,378 lines

  1. #       Program:        mscmake                      15 May 1989
  2. #       Author:         Andrew H. Derbyshire
  3. #                       Kendra Electronic Wonderworks
  4. #                       P. O. Box 132
  5. #                       Arlington, MA 02174
  6. #       Function:       Build UUPC/extended from source files
  7. #       Processor:      Microsoft nmake
  8. #       External files: MASM            (8088 Assembler)
  9. #                       CL              (Microsoft C 6.0 compiler)
  10. #                       LINK or         (MS-DOS Linker)
  11. #                       LINK386         (OS/2 Linker)
  12. #                       Input source files.
  13. #
  14. #       Copyright (c) 1989-1993 by Kendra Electronic Wonderworks;
  15. #       all rights reserved except those explicitly granted by
  16. #       the UUPC/extended license.
  17. #
  18. #       nmk /nologo /s /f mscmake prodr
  19. #       nmake /nologo /s /f mscmake prodp
  20. #       nmake /nologo /s /f mscmake prodn
  21. #
  22. #       $Id: mscmake 1.37 1993/10/04 16:42:24 ahd Exp $
  23. #
  24. #       $Log: mscmake $
  25. #         Revision 1.37  1993/10/04  16:42:24  ahd
  26. #         Correct directory archives are created in
  27. #
  28. #         Revision 1.36  1993/10/04  15:40:46  ahd
  29. #         Revise makefile to generate true release names
  30. #         Include 00readme.now in all archives
  31. #
  32. #         Revision 1.35  1993/10/03  20:36:32  ahd
  33. #         Force NUL as file name linkinh
  34. #
  35. #         Revision 1.34  1993/10/02  23:11:57  dmwatt
  36. #         Add TCP/IP error messages
  37. #
  38. #         Revision 1.33  1993/10/02  19:05:48  ahd
  39. #         Change stack size on DOS modules
  40. #         Use full path name for files to aid debugging
  41. #
  42. #         Revision 1.32  1993/10/01  02:07:43  dmwatt
  43. #         Add new prtynt.obj to parallel OS/2 version
  44. #         Delete unneeded library paths
  45. #
  46. #         Revision 1.31  1993/09/29  04:47:26  ahd
  47. #         Add unique signal handler for suspend port
  48. #
  49. #         Revision 1.30  1993/09/27  00:42:15  ahd
  50. #         Add suspend of serial ports by K. Rommel
  51. #
  52. #         Revision 1.29  1993/09/20  04:34:28  ahd
  53. #         TCP/IP support from Dave Watt
  54. #         't' protocol support
  55. #         Disable debug output when installing
  56. #
  57. #         Revision 1.28  1993/09/02  12:07:45  ahd
  58. #         HPFS support
  59. #
  60. #         Revision 1.27  1993/08/26  04:59:46  ahd
  61. #         Compile without WINT variable, other NT corrections on kendra
  62. #
  63. #         Revision 1.26  1993/08/02  03:21:04  ahd
  64. #         Rename zip files
  65. #
  66. #         Revision 1.25  1993/07/31  16:19:27  ahd
  67. #         Break trumpet into unique module
  68. #         General clean up of unneeded definitions
  69. #         Always use version header
  70. #
  71. #         Revision 1.24  1993/07/20  21:43:58  ahd
  72. #         Use only one OS/2 definitions file (per Kae Uwe Rommel)
  73. #
  74. #         Revision 1.23  1993/06/15  12:17:34  ahd
  75. #         Rename commfifo.asm to comm.asm
  76. #
  77. #         Revision 1.22  1993/06/06  15:03:35  ahd
  78. #         Move to release 1.12A
  79. #
  80. #         Revision 1.21  1993/05/30  15:25:11  ahd
  81. #         Add INT14 driver support
  82. #
  83. #         Revision 1.20  1993/05/10  02:47:43  ahd
  84. #         Include getuupc.cmd in installed OS/2 files
  85. #
  86. #         Revision 1.19  1993/04/19  13:15:52  ahd
  87. #         Begin version 1.11z
  88. #
  89. #         Revision 1.18  1993/04/17  13:40:13  ahd
  90. #         Fix win/32 header build
  91. #
  92. #         Revision 1.17  1993/04/16  13:11:15  dmwatt
  93. #         Build win/nt header file less often
  94. #
  95. #         Revision 1.16  1993/04/16  12:55:11  dmwatt
  96. #         Add support for special Win/NT version id header
  97. #
  98. #         Revision 1.15  1993/04/14  02:42:33  ahd
  99. #         Fix uucp target name for Windows/NT
  100. #
  101. #         Revision 1.14  1993/04/14  00:44:19  ahd
  102. #         Drop use of FMT from ZIP file build
  103. #         Add Windows/NT zip file build
  104. #         Add credit for Dave and Windows/NT Build
  105. #
  106. #         Revision 1.13  1993/04/10  21:24:27  dmwatt
  107. #         Add Windows/NT support
  108. #
  109. #    Revision 1.11  1993/04/05  12:25:39  ahd
  110. #    Clean up .def files
  111. #
  112. #    Revision 1.10  1993/04/05  04:31:27  ahd
  113. #    HPFS support (module definition files)
  114. #
  115. #    Revision 1.9  1993/04/04  04:55:31  ahd
  116. #    Add uunamep.exe to testp: build
  117. #
  118. #    Revision 1.8  1993/03/24  01:57:13  ahd
  119. #    rn support
  120. #
  121. #    Revision 1.7  1993/03/06  22:47:10  ahd
  122. #    Generic build, including rn.exe
  123. #
  124. #    Revision 1.6  1993/01/23  19:07:01  ahd
  125. #    Revise alias
  126. #
  127. #    Revision 1.5  1992/12/04  00:58:57  ahd
  128. #    Add sysalias to rmail build
  129. #
  130. #    Revision 1.5  1992/12/04  00:58:57  ahd
  131. #    Add sysalias to rmail build
  132. #
  133. #    Revision 1.4  1992/11/29  22:12:36  ahd
  134. #    Correct TMP directory to TEMP
  135. #    Add installation of OS/2 CMD files from RCS source directory
  136. #    Change copyright message
  137. #    Add build for TESTULIB.EXE
  138. #
  139. #    Revision 1.3  1992/11/27  14:37:55  ahd
  140. #    Add scrsize() to library build
  141. #
  142. #    Revision 1.2  1992/11/22  21:04:42  ahd
  143. #    Add normalize() to build
  144.  
  145. .SUFFIXES: .c .asm .zip .obj
  146.  
  147. # *--------------------------------------------------------------------*
  148. # *     Note:   By default, this file generates code for 80286         *
  149. # *             systems and above.  If you are generating              *
  150. # *             UUPC/extended for a 8088 system, remove the /G2        *
  151. # *             option from the CCOPT= line, below                     *
  152. # *--------------------------------------------------------------------*
  153.  
  154. # *--------------------------------------------------------------------*
  155. # *   Our release number.  This is updated each time we ship it        *
  156. # *   out to some unsuspecting user, or sometimes when we do a         *
  157. # *   major fix even if we don't ship it out to the lusers.  ANY       *
  158. # *   VERSION NOT DONE ON kendra SHOULD BE TAGGED AS N.NNAm, WHERE     *
  159. # *   N.NNA IS THE NUMBER UUPC was shipped as, and 'm' any string      *
  160. # *   to indentify your special version.  Just upping the              *
  161. # *   distributed version number will confuse you AND me.              *
  162. # *--------------------------------------------------------------------*
  163.  
  164. VERS = 1.12b
  165.  
  166. # *--------------------------------------------------------------------*
  167. # *   The memory model to be built.  (Ignored by 32 bit compilers)     *
  168. # *--------------------------------------------------------------------*
  169.  
  170. !IF "$(MODEL)" == ""
  171. MODEL   = M
  172. !ENDIF
  173.  
  174. # *--------------------------------------------------------------------*
  175. # *                  Windows NT generic make include file              *
  176. # *--------------------------------------------------------------------*
  177.  
  178. !IF "$(OS)" == "Windows_NT"
  179. !include <ntwin32.mak>
  180. !ENDIF
  181.  
  182. # *--------------------------------------------------------------------*
  183. # *   Various directories.  The TEMP directory is not defined here;    *
  184. # *   rather we expect it to be defined as part of the user's          *
  185. # *   environment variables                                            *
  186. # *--------------------------------------------------------------------*
  187.  
  188. MAIL    = $(SRCSLASH)mail
  189. UTIL    = $(SRCSLASH)util
  190. UUCP    = $(SRCSLASH)uucp
  191. RNEWS   = $(SRCSLASH)rnews
  192. UULIB   = $(SRCSLASH)lib
  193. TEST    = $(SRCSLASH)test
  194. UUCICO  = $(SRCSLASH)uucico
  195.  
  196. !IF "$(OS)" == "Windows_NT"
  197. OBJ     = $(SRCSLASH)objmsnt
  198. !ELSE
  199. OBJ     = $(SRCSLASH)objms$(MODEL)
  200. !ENDIF
  201.  
  202. SBR     = $(SRCSLASH)sbr
  203. PRODP   = \uupc\os2bin
  204. PRODR   = \uupc\bin
  205. PRODN   = \uupc\ntbin
  206. SCRIPTS = $(SRCSLASH)scripts
  207.  
  208. # *--------------------------------------------------------------------*
  209. # *                        Various file names                          *
  210. # *--------------------------------------------------------------------*
  211.  
  212. ZIPPREFIXX=UPC$(VERS:.=)
  213. ZIPPREFIX=$(SRCSLASH)$(VERS)\$(ZIPPREFIXX:C1=C)
  214.  
  215. WNTZIPV1 = $(ZIPPREFIX)n1.zip
  216. WNTZIPV2 = $(ZIPPREFIX)n2.zip
  217. WNTZIPV3 = $(ZIPPREFIX)n3.zip
  218. OS2ZIPV2 = $(ZIPPREFIX)11.zip
  219. OS2ZIPV3 = $(ZIPPREFIX)12.zip
  220. OS2ZIPV4 = $(ZIPPREFIX)13.zip
  221. LIBCOMM  = $(TMP)\$(MODEL)uupcmsc.lib
  222. LIBNT    = $(TMP)\uupcnt.lib
  223. LIBOS2   = $(TMP)\$(MODEL)uupcos2.lib
  224. LIBDOS   = $(TMP)\$(MODEL)uupcdos.lib
  225. WORKFILE = $(TMP)\UUPCTEMP.TMP
  226. DEFFILE  = $(TMP)\UUPCOS2T.TMP
  227.  
  228. # *--------------------------------------------------------------------*
  229. # *         Library names; season to taste and configuration           *
  230. # *--------------------------------------------------------------------*
  231.  
  232. NTLIBS=libc.lib $(LIBCOMM) $(LIBNT) $(conlibs) ADVAPI32.LIB WSOCK32.LIB
  233. OS2LIBS=$(MODEL)libcep+$(LIBCOMM)+$(LIBOS2)+os2
  234. DOSLIBS=$(MODEL)libce+$(LIBCOMM)+$(LIBDOS)
  235.  
  236. # *--------------------------------------------------------------------*
  237. # *        The names of various object files that we create.           *
  238. # *--------------------------------------------------------------------*
  239.  
  240. TIMESTMP = $(OBJ)\timestmp.obj
  241. LIBLIST = $(OBJ)\active.obj \
  242.           $(OBJ)\arbmath.obj $(OBJ)\arpadate.obj $(OBJ)\bugout.obj\
  243.           $(OBJ)\chdir.obj $(OBJ)\checkptr.obj $(OBJ)\configur.obj\
  244.           $(OBJ)\catcher.obj $(OBJ)\dater.obj $(OBJ)\expath.obj\
  245.           $(OBJ)\export.obj $(OBJ)\filebkup.obj $(OBJ)\fopen.obj $(OBJ)\getargs.obj\
  246.           $(OBJ)\getopt.obj $(OBJ)\getseq.obj $(OBJ)\hostable.obj\
  247.           $(OBJ)\importng.obj $(OBJ)\dos2unix.obj  $(OBJ)\execute.obj \
  248.           $(OBJ)\hostatus.obj $(OBJ)\hostrset.obj $(OBJ)\usrcatch.obj \
  249.           $(OBJ)\kanjicnv.obj $(OBJ)\lock.obj $(OBJ)\logger.obj\
  250.           $(OBJ)\mkdir.obj $(OBJ)\mkfilenm.obj $(OBJ)\mkmbox.obj\
  251.           $(OBJ)\mktempnm.obj $(OBJ)\normaliz.obj $(OBJ)\printmsg.obj\
  252.           $(OBJ)\pushpop.obj $(OBJ)\readnext.obj $(OBJ)\rename.obj\
  253.           $(OBJ)\security.obj $(OBJ)\stater.obj $(OBJ)\strpool.obj\
  254.           $(OBJ)\usertabl.obj $(OBJ)\validcmd.obj $(TIMESTMP)
  255.  
  256. LIBDOSLIST= $(OBJ)\ndir.obj $(OBJ)\printerr.obj $(OBJ)\ssleep.obj\
  257.             $(OBJ)\getdta.obj $(OBJ)\safeio.obj $(OBJ)\safeout.obj\
  258.             $(OBJ)\scrsize.obj $(OBJ)\trumpet.obj $(OBJ)\import.obj
  259. LIBOS2LIST= $(OBJ)\ndiros2.obj $(OBJ)\printerr.obj $(OBJ)\ssleep2.obj\
  260.             $(OBJ)\safeio2.obj $(OBJ)\safeout2.obj $(OBJ)\scrsize2.obj\
  261.             $(OBJ)\trumpet2.obj $(OBJ)\import2.obj  $(OBJ)\pos2err.obj
  262.  
  263. LIBNTLIST=  $(OBJ)\ndirnt.obj $(OBJ)\printerr.obj $(OBJ)\ssleep.obj\
  264.             $(OBJ)\safeio.obj $(OBJ)\safeout.obj $(OBJ)\scrsiznt.obj\
  265.             $(OBJ)\setstdin.obj $(OBJ)\trumpet.obj $(OBJ)\import.obj\
  266.             $(OBJ)\pnterr.obj
  267.  
  268. # *--------------------------------------------------------------------*
  269. # *             Object file lists for specific programs                *
  270. # *--------------------------------------------------------------------*
  271.  
  272. MAILCOMOBJ = $(OBJ)\mail.obj $(OBJ)\address.obj $(OBJ)\mailblib.obj\
  273.           $(OBJ)\maillib.obj $(OBJ)\mailsend.obj \
  274.           $(OBJ)\alias.obj
  275.  
  276. MAILROBJ  = $(MAILCOMOBJ) $(OBJ)\mlib.obj
  277. MAILPOBJ  = $(MAILCOMOBJ) $(OBJ)\mlib2.obj
  278. MAILNOBJ  = $(MAILCOMOBJ) $(OBJ)\mlib.obj
  279.  
  280. UUCPOBJ = $(OBJ)\address.obj $(OBJ)\uucp.obj
  281.  
  282. RNEWSOBJ = $(OBJ)\rnews.obj $(OBJ)\history.obj
  283. EXPIREOBJ = $(OBJ)\expire.obj
  284.  
  285. RMAILOBJ = $(OBJ)\address.obj $(OBJ)\rmail.obj $(OBJ)\sysalias.obj \
  286.            $(OBJ)\deliver.obj
  287.  
  288. UUCICOOBJ1 = $(OBJ)\checktim.obj $(OBJ)\dcp.obj $(OBJ)\dcpfpkt.obj \
  289.              $(OBJ)\dcpgpkt.obj $(OBJ)\dcplib.obj $(OBJ)\dcpstats.obj\
  290.              $(OBJ)\dcpxfer.obj
  291. UUCICOOBJ2 = $(OBJ)\modem.obj $(OBJ)\script.obj $(OBJ)\uucico.obj
  292. UUCICOPOBJ3 = $(OBJ)\dcpsys2.obj $(OBJ)\dcptpkt.obj \
  293.               $(OBJ)\nbstime2.obj $(OBJ)\ulibos2.obj\
  294.               $(OBJ)\commlib2.obj $(OBJ)\ulibnmp.obj\
  295.               $(OBJ)\prtyos2.obj $(OBJ)\suspend2.obj
  296. UUCICOROBJ3 = $(OBJ)\dcpsys.obj \
  297.               $(OBJ)\nbstime.obj $(OBJ)\ulib.obj $(OBJ)\ulibfs.obj  \
  298.               $(OBJ)\ulib14.obj $(OBJ)\fossil.obj  \
  299.               $(OBJ)\commlib.obj $(OBJ)\comm.obj $(OBJ)\suspend.obj
  300. UUCICONOBJ3 = $(OBJ)\dcpsys.obj \
  301.               $(OBJ)\nbstime.obj $(OBJ)\ulibnt.obj $(OBJ)\ulibip.obj\
  302.               $(OBJ)\dcptpkt.obj $(OBJ)\commlib.obj $(OBJ)\suspend.obj\
  303.               $(OBJ)\prtynt.obj $(OBJ)\pwserr.obj
  304.  
  305. RNOBJ1=$(OBJ)\addng.obj $(OBJ)\art.obj $(OBJ)\artio.obj $(OBJ)\artsrch.obj\
  306.        $(OBJ)\backpage.obj $(OBJ)\bits.obj $(OBJ)\cheat.obj $(OBJ)\final.obj
  307. RNOBJ2=$(OBJ)\head.obj $(OBJ)\help.obj $(OBJ)\init.obj $(OBJ)\intrp.obj\
  308.        $(OBJ)\kfile.obj $(OBJ)\last.obj $(OBJ)\ng.obj $(OBJ)\ngdata.obj
  309. RNOBJ3=$(OBJ)\ngsrch.obj $(OBJ)\ngstuff.obj $(OBJ)\only.obj $(OBJ)\rcln.obj\
  310.        $(OBJ)\rcstuff.obj $(OBJ)\respond.obj $(OBJ)\rn.obj $(OBJ)\search.obj\
  311.        $(OBJ)\sw.obj $(OBJ)\term.obj $(OBJ)\util.obj $(OBJ)\uudecode.obj \
  312.        $(OBJ)\rnpclib.obj
  313. RNOBJ=$(RNOBJ1) $(RNOBJ2) $(RNOBJ3)
  314.  
  315. NEWSETUPOBJ=$(OBJ)\newsetup.obj $(OBJ)\rnlib.obj
  316.  
  317. UUSUBOBJ = $(OBJ)\uusub.obj
  318.  
  319. UUSTATOBJ = $(OBJ)\uustat.obj
  320.  
  321. UUXQTOBJ = $(OBJ)\uuxqt.obj
  322.  
  323. UUXOBJ = $(OBJ)\uux.obj
  324.  
  325. POLLNOBJ  = $(OBJ)\uupoll.obj
  326. POLLPOBJ  = $(OBJ)\uupoll2.obj
  327. POLLROBJ  = $(OBJ)\uupoll.obj
  328.  
  329. # *--------------------------------------------------------------------*
  330. # *      Lists of programs to built for various pseudo targets         *
  331. # *--------------------------------------------------------------------*
  332.  
  333. EXECR   = mailr.exe rmailr.exe rnewsr.exe\
  334.           uupollr.exe uucicor.exe uucpr.exe\
  335.           uusubr.exe uustatr.exe uuxqtr.exe uuxr.exe
  336. EXECP   = mailp.exe rmailp.exe rnewsp.exe\
  337.           uupollp.exe uucicop.exe uucpp.exe\
  338.           uusubp.exe uustatp.exe uuxqtp.exe uuxp.exe uuportp.exe
  339. EXECN   = mailn.exe rmailn.exe rnewsn.exe\
  340.           uupolln.exe uucicon.exe uucpn.exe\
  341.           uusubn.exe uustatn.exe uuxqtn.exe uuxn.exe
  342.  
  343.  
  344. ICONS   = $(PRODP)\mail.ico $(PRODP)\uucico.ico
  345. INSTALLP = $(INSTALLP2) $(INSTALLP3) $(INSTALLP4) $(INSTALLPS)
  346. INSTALLR = $(PRODR)\mail.exe $(PRODR)\rmail.exe $(PRODR)\rnews.exe\
  347.           $(PRODR)\uupoll.exe $(PRODR)\uucico.exe $(PRODR)\uucp.exe\
  348.           $(PRODR)\uusub.exe $(PRODR)\uuxqt.exe $(PRODR)\uux.exe\
  349.           $(PRODR)\uustat.exe  $(PRODR)\rn.exe $(PRODR)\newsetup.exe
  350.  
  351. INSTALLP2= $(PRODP)\mail.exe $(PRODP)\rmail.exe $(PRODP)\uucico.exe\
  352.           $(PRODP)\uuxqt.exe
  353. INSTALLP3= $(PRODP)\uucp.exe $(PRODP)\uuname.exe $(PRODP)\uupoll.exe\
  354.           $(PRODP)\uustat.exe $(PRODP)\uusub.exe $(PRODP)\uuport.exe\
  355.           $(PRODP)\uux.exe $(FMT) $(PRODP)\gensig.exe $(PRODP)\novrstrk.exe \
  356.           $(PRODP)\su.cmd $(PRODP)\uuio.cmd $(PRODP)\uuclean.cmd\
  357.           $(PRODP)\waiting.cmd $(PRODP)\mailchek.cmd $(PRODP)\getuupc.cmd
  358. INSTALLP4= $(PRODP)\rnews.exe $(PRODP)\expire.exe
  359. #         $(PRODP)\rn.exe $(PRODP)\newsetup.exe
  360.  
  361. INSTALLN2= $(PRODN)\mail.exe $(PRODN)\rmail.exe $(PRODN)\uucico.exe\
  362.           $(PRODN)\uuxqt.exe
  363. INSTALLN3= $(PRODN)\uucp.exe $(PRODN)\uuname.exe $(PRODN)\uupoll.exe\
  364.           $(PRODN)\uustat.exe $(PRODN)\uusub.exe\
  365.           $(PRODN)\uux.exe $(FMT) $(PRODN)\gensig.exe $(PRODN)\novrstrk.exe \
  366.           $(PRODN)\su.bat $(PRODN)\uuio.bat $(PRODN)\uuclean.bat\
  367.           $(PRODN)\waiting.bat
  368. INSTALLN4= $(PRODN)\rnews.exe $(PRODN)\expire.exe
  369. #         $(PRODN)\rn.exe $(PRODN)\newsetup.exe
  370. INSTALLN  = $(INSTALLN1) $(INSTALLN2) $(INSTALLN3) $(INSTALLN4)
  371.  
  372. # *--------------------------------------------------------------------*
  373. # *   Source browser files; because of space limitations, these        *
  374. # *   are not always generated unless you change the C compiler        *
  375. # *   options.                                                         *
  376. # *--------------------------------------------------------------------*
  377.  
  378. # *--------------------------------------------------------------------*
  379. # *     This needs to be expanded too *all* the OBJ files ... but      *
  380. # *     not today, as the Wonderworks doesn't use it.                  *
  381. # *--------------------------------------------------------------------*
  382. SBRS = $(LIBDOSLIST:obj=sbr)
  383.  
  384. # *--------------------------------------------------------------------*
  385. # *                   And, of course, our makefile                     *
  386. # *--------------------------------------------------------------------*
  387.  
  388. MAKEFILE = $(SRCSLASH)mscmake
  389. README=    docs\00readme.now
  390.  
  391. # *--------------------------------------------------------------------*
  392. # *      Define the linker used and the options related to it.         *
  393. # *--------------------------------------------------------------------*
  394.  
  395. #       Could use link386 under OS/2 2.0, but doesn't work if cross
  396. #       compiled to older OS/2 1.3 system.
  397.  
  398. !IF "$(OS)" == "Windows_NT"
  399. LINKER = $(link)
  400. !ELSE
  401. LINKER  = link
  402. !ENDIF
  403.  
  404. LINKPOPT = /exepack /far /noignorecase /nod /batch
  405.  
  406. LINKNOPT = $(conflags) $(ldebug)
  407.  
  408. #       No /exepack under DOS, DOS 5 can be confused by it.
  409. LINKROPT = /batch /far /noignorecase /stack:20000
  410.  
  411. # *--------------------------------------------------------------------*
  412. # *                     Microsoft Assembler name                       *
  413. # *--------------------------------------------------------------------*
  414.  
  415. MASM    = masm.exe
  416.  
  417. #MASMOPTS = /DUUPC /DDEBUG /n /v /t /z /W2 /ZD /Mx
  418. MASMOPTS = /DUUPC /n /v /t /z /W2 /ZI /ZD /Mx
  419.  
  420. # *--------------------------------------------------------------------*
  421. # *                      C compiler and options                        *
  422. # *--------------------------------------------------------------------*
  423.  
  424. # *--------------------------------------------------------------------*
  425. # *   Add /Zi for Codeview debugging information, and change the       *
  426. # *   /exepack option to /codeview on the linker options (above).      *
  427. # *                                                                    *
  428. # *   Add /FR$(SBR)\$(@B).sbr to generate source browser files.        *
  429. # *   (I had to delete the this because of space considerations        *
  430. # *   on kendra.)                                                      *
  431. # *                                                                    *
  432. # *   Also, delete /Ocegilt (optimizer options) and /Gs (no stack      *
  433. # *   overflow checking) if debugging and having problems.  Note       *
  434. # *   stack overflow *is* checked in printmsg(), which is called       *
  435. # *   by most if not all deep routines.                                *
  436. # *                                                                    *
  437. # *   Delete the /G2 if building for an 8086 based system.             *
  438. # *--------------------------------------------------------------------*
  439.  
  440. !IF "$(OS)" == "Windows_NT"
  441. CC      = cl
  442. # CC is defined in ntwin32.mak, so no need for an ELSE clause here
  443. !ENDIF
  444.  
  445.  
  446. !IF "$(OS)" == "Windows_NT"
  447. CCOPT   = $(cflags) $(cvars) -I$(UULIB) /Fo$@
  448.  
  449. {$(UULIB)}.c.obj:
  450.         $(CC) $(CCOPT) $<
  451.  
  452. {$(MAIL)}.c.obj:
  453.         $(CC) $(CCOPT) $<
  454.  
  455. {$(RN)}.c.obj:
  456.         $(CC) $(CCOPT) $<
  457.  
  458. {$(RNEWS)}.c.obj:
  459.         $(CC) $(CCOPT) $<
  460.  
  461. {$(TEST)}.c.obj:
  462.         $(CC) $(CCOPT) $<
  463.  
  464. {$(UUCICO)}.c.obj:
  465.         $(CC) $(CCOPT) $<
  466.  
  467. {$(UUCP)}.c.obj:
  468.         $(CC) $(CCOPT) $<
  469.  
  470. {$(UTIL)}.c.obj:
  471.         $(CC) $(CCOPT) $<
  472.  
  473. !ELSE
  474.  
  475. #       Use this CCOPT for debugging; the /FR is optional.
  476. #CCOPT   = /I$(UULIB) /A$(MODEL) /c /W4 /nologo /G2 /Fo$@ /Od /FR$(SBR)\$(@B).sbr /Zi /Or /DUDEBUG /DFAMILY
  477.  
  478. #       Use this CCOPT for productiom (/DFAMILY for OS/2 only)
  479. CCOPT   = /I$(UULIB) /A$(MODEL) /c /W4 /nologo /G2 /Fo$@ /Ocegilt
  480.  
  481. {$(UULIB)}.c{$(OBJ)}.obj:
  482.         $(CC) $(CCOPT) $<
  483.  
  484. {$(MAIL)}.c{$(OBJ)}.obj:
  485.         $(CC) $(CCOPT) $<
  486.  
  487. {$(RN)}.c{$(OBJ)}.obj:
  488.         $(CC) $(CCOPT) /W3 $<
  489.  
  490. {$(RNEWS)}.c{$(OBJ)}.obj:
  491.         $(CC) $(CCOPT) $<
  492.  
  493. {$(TEST)}.c{$(OBJ)}.obj:
  494.         $(CC) $(CCOPT) $<
  495.  
  496. {$(UUCICO)}.c{$(OBJ)}.obj:
  497.         $(CC) $(CCOPT) $<
  498.  
  499. {$(UUCP)}.c{$(OBJ)}.obj:
  500.         $(CC) $(CCOPT) $<
  501.  
  502. {$(UTIL)}.c{$(OBJ)}.obj:
  503.         $(CC) $(CCOPT) $<
  504. !ENDIF
  505.  
  506. # *--------------------------------------------------------------------*
  507. # *            ZIP, for creating the distributed archive               *
  508. # *--------------------------------------------------------------------*
  509.  
  510. ZIP     = zip
  511. ZIPOPT1 = -o -9 -u $@ -@
  512. ZIPOPT2 = -j $(ZIPOPT1)
  513.  
  514. # *--------------------------------------------------------------------*
  515. # *                Begin rules for building modules.                   *
  516. # *--------------------------------------------------------------------*
  517.  
  518. # *--------------------------------------------------------------------*
  519. # *        The first definition is the one built by default.           *
  520. # *--------------------------------------------------------------------*
  521.  
  522. # *--------------------------------------------------------------------*
  523. # *   testp builds the basic OS/2 UUPC modules in the source           *
  524. # *   directory.                                                       *
  525. # *--------------------------------------------------------------------*
  526.  
  527. !IF "$(OS)" == "Windows_NT"
  528. testN:  $(OBJ) mailn.exe rmailn.exe uucicon.exe\
  529.         uupolln.exe uucpn.exe uusubn.exe uustatn.exe uuxn.exe uuxqtn.exe\
  530.         uunamen.exe gensign.exe expiren.exe rnewsn.exe
  531. #       rnn.exe newsetpn.exe
  532.         - del $(LIBCOMM)
  533.         - del $(LIBOS2)
  534. !ELSE
  535. testP:  $(OBJ) mailp.exe rmailp.exe uucicop.exe\
  536.         uupollp.exe uucpp.exe uusubp.exe uustatp.exe uuxp.exe uuxqtp.exe\
  537.         uunamep.exe uuportp.exe gensigp.exe expirep.exe rnewsp.exe
  538. #       rnp.exe newsetpp.exe
  539.         - del $(LIBCOMM)
  540.         - del $(LIBOS2)
  541. !ENDIF
  542.  
  543. # *--------------------------------------------------------------------*
  544. # *   testr builds the basic MS-DOS UUPC modules in the source         *
  545. # *   directory.                                                       *
  546. # *--------------------------------------------------------------------*
  547.  
  548. testR:  $(OBJ) expirer.exe mailr.exe rmailr.exe rnewsr.exe uucicor.exe\
  549.         uupollr.exe uucpr.exe uusubr.exe uustatr.exe uuxr.exe uuxqtr.exe \
  550.         gensigr.exe
  551. #       rnr.exe newsetpr.exe
  552.         - del $(LIBCOMM)
  553.         - del $(LIBDOS)
  554.  
  555. # *--------------------------------------------------------------------*
  556. # *   Prod build the basic modules and then moves them to $(PROD)      *
  557. # *--------------------------------------------------------------------*
  558.  
  559. prodn:  $(OBJ) $(INSTALLN) regen
  560.         - del $(LIBCOMM)
  561.         - del $(LIBNT)
  562.  
  563.  
  564. prodp:  $(OBJ) $(INSTALLP) regen
  565.         - del $(LIBCOMM)
  566.         - del $(LIBOS2)
  567.  
  568.  
  569. prodr:  $(OBJ) $(INSTALLR)
  570.         - del $(LIBCOMM)
  571.         - del $(LIBOS2)
  572.  
  573. installn:  $(OBJ) $(INSTALLN) $(WNTZIPV1) $(WNTZIPV2)  $(WNTZIPV3)
  574.         - del $(LIBCOMM)
  575.         - del $(LIBNT)
  576.  
  577. installp:  $(OBJ) $(OS2ZIPV2) $(OS2ZIPV3)  $(OS2ZIPV4)
  578.         - del $(LIBCOMM)
  579.         - del $(LIBOS2)
  580.  
  581. installr:  prodr
  582.  
  583. !IF "$(OS)" == "Windows_NT"
  584. install:        zip
  585.  
  586. zip:
  587.         nmake -f $(MAKEFILE) NODEBUG=1 installn
  588. !ELSE
  589. zip:    installp
  590. !ENDIF
  591.  
  592. # *--------------------------------------------------------------------*
  593. # *          Do a purge of various temporary output files.             *
  594. # *--------------------------------------------------------------------*
  595.  
  596. clean:  xclean
  597.         - del $(SRCSLASH)*.bak
  598.         - del *.map
  599.         - del $(WORKFILE)
  600.  
  601. # *--------------------------------------------------------------------*
  602. # *      Do a clean of just executable files and related files.        *
  603. # *--------------------------------------------------------------------*
  604.  
  605. xclean:
  606.         - del $(OBJ)\*.obj
  607.         - del $(OBJ)\*.exe
  608.         - del $(TMP)\*.lib
  609.         - del $(SRCSLASH)*.obj
  610.         - del $(SRCSLASH)*.exe
  611.         - del $(SBR)\*.sbr
  612.  
  613. # *--------------------------------------------------------------------*
  614. # *             Read mode (DOS) production executables                 *
  615. # *--------------------------------------------------------------------*
  616.  
  617. $(PRODR)\expire.exe: expirer.exe
  618.         - del $@
  619.         move $? $@
  620.  
  621. $(PRODR)\mail.exe: mailr.exe
  622.         - del $@
  623.         move $? $@
  624.  
  625. $(PRODR)\rmail.exe: rmailr.exe
  626.         - del $@
  627.         move $? $@
  628.  
  629. $(PRODR)\rnews.exe: rnewsr.exe
  630.         - del $@
  631.         move $? $@
  632.  
  633. $(PRODR)\uucp.exe: uucpr.exe
  634.         - del $@
  635.         move $? $@
  636.  
  637. $(PRODR)\uucico.exe: uucicor.exe
  638.         - del $@
  639.         move $? $@
  640.  
  641. $(PRODR)\uupoll.exe: uupollr.exe
  642.         - del $@
  643.         move $? $@
  644.  
  645. $(PRODR)\uusub.exe: uusubr.exe
  646.         - del $@
  647.         move $? $@
  648.  
  649. $(PRODR)\uustat.exe: uustatr.exe
  650.         - del $@
  651.         move $? $@
  652.  
  653. $(PRODR)\uuxqt.exe: uuxqtr.exe
  654.         - del $@
  655.         move $? $@
  656.  
  657. $(PRODR)\uux.exe: uuxr.exe
  658.         - del $@
  659.         move $? $@
  660.  
  661. $(PRODP)\rn.exe: rnp.exe
  662.         - del $@
  663.         move $? $@
  664.  
  665. $(PRODR)\rn.exe: rnr.exe
  666.         - del $@
  667.         move $? $@
  668.  
  669. $(PRODP)\newsetup.exe: newsetpp.exe
  670.         - del $@
  671.         move $? $@
  672.  
  673. $(PRODR)\newsetup.exe: newsetpr.exe
  674.         - del $@
  675.         move $? $@
  676.  
  677. # *--------------------------------------------------------------------*
  678. # *             Protected mode (OS/2) production modules               *
  679. # *--------------------------------------------------------------------*
  680.  
  681. $(PRODP)\expire.exe: expirep.exe
  682.         - del $@
  683.         move $? $@
  684.  
  685. $(PRODP)\fmt.exe: fmtp.exe
  686.         - del $@
  687.         move $? $@
  688.  
  689. $(PRODP)\gensig.exe: gensigp.exe
  690.         - del $@
  691.         move $? $@
  692.  
  693. $(PRODR)\gensig.exe: gensigr.exe
  694.         - del $@
  695.         move $? $@
  696.  
  697. $(PRODP)\mail.exe: mailp.exe
  698.         - del $@
  699.         move $? $@
  700.  
  701. $(PRODP)\novrstrk.exe: novrstrp.exe
  702.         - del $@
  703.         move $? $@
  704.  
  705. $(PRODP)\rmail.exe: rmailp.exe
  706.         - del $@
  707.         move $? $@
  708.  
  709. $(PRODP)\rnews.exe: rnewsp.exe
  710.         - del $@
  711.         move $? $@
  712.  
  713. $(PRODP)\uucp.exe: uucpp.exe
  714.         - del $@
  715.         move $? $@
  716.  
  717. $(PRODP)\uucico.exe: uucicop.exe
  718.         - del $@
  719.         move $? $@
  720.  
  721. $(PRODP)\uupoll.exe: uupollp.exe
  722.         - del $@
  723.         move $? $@
  724.  
  725. $(PRODP)\uuport.exe: uuportp.exe
  726.         - del $@
  727.         move $? $@
  728.  
  729. $(PRODP)\uusub.exe: uusubp.exe
  730.         - del $@
  731.         move $? $@
  732.  
  733. $(PRODP)\uustat.exe: uustatp.exe
  734.         - del $@
  735.         move $? $@
  736.  
  737. $(PRODP)\uuxqt.exe: uuxqtp.exe
  738.         - del $@
  739.         move $? $@
  740.  
  741. $(PRODP)\uux.exe: uuxp.exe
  742.         - del $@
  743.         move $? $@
  744.  
  745. $(PRODP)\uuname.exe: uunamep.exe
  746.         - del $@
  747.         move $? $@
  748.  
  749. $(PRODP)\uuio.cmd: $(SCRIPTS)\uuio.cmd
  750.         copy $? $@
  751.  
  752. $(PRODP)\waiting.cmd: $(SCRIPTS)\waiting.cmd
  753.         copy $? $@
  754.  
  755. $(PRODP)\su.cmd: $(SCRIPTS)\su.cmd
  756.         copy $? $@
  757.  
  758. $(PRODP)\mailchek.cmd: $(SCRIPTS)\mailchek.cmd
  759.         copy $? $@
  760.  
  761. $(PRODP)\uuclean.cmd: $(SCRIPTS)\uuclean.cmd
  762.         copy $? $@
  763.  
  764. $(PRODP)\getuupc.cmd: $(SCRIPTS)\getuupc.cmd
  765.         copy $? $@
  766.  
  767. # *--------------------------------------------------------------------*
  768. # *       Protected mode (Windows/NT) production modules               *
  769. # *--------------------------------------------------------------------*
  770.  
  771. $(PRODN)\expire.exe: expiren.exe
  772.         - del $@
  773.         move $? $@
  774.  
  775. $(PRODN)\fmt.exe: fmtn.exe
  776.         - del $@
  777.         move $? $@
  778.  
  779. $(PRODN)\gensig.exe: gensign.exe
  780.         - del $@
  781.         move $? $@
  782.  
  783. $(PRODR)\gensig.exe: gensigr.exe
  784.         - del $@
  785.         move $? $@
  786.  
  787. $(PRODN)\mail.exe: mailn.exe
  788.         - del $@
  789.         move $? $@
  790.  
  791. $(PRODN)\novrstrk.exe: novrstrn.exe
  792.         - del $@
  793.         move $? $@
  794.  
  795. $(PRODN)\rmail.exe: rmailn.exe
  796.         - del $@
  797.         move $? $@
  798.  
  799. $(PRODN)\rnews.exe: rnewsn.exe
  800.         - del $@
  801.         move $? $@
  802.  
  803. $(PRODN)\uucp.exe: uucpn.exe
  804.         - del $@
  805.         move $? $@
  806.  
  807. $(PRODN)\uucico.exe: uucicon.exe
  808.         - del $@
  809.         move $? $@
  810.  
  811. $(PRODN)\uupoll.exe: uupolln.exe
  812.         - del $@
  813.         move $? $@
  814.  
  815. $(PRODN)\uusub.exe: uusubn.exe
  816.         - del $@
  817.         move $? $@
  818.  
  819. $(PRODN)\uustat.exe: uustatn.exe
  820.         - del $@
  821.         move $? $@
  822.  
  823. $(PRODN)\uuxqt.exe: uuxqtn.exe
  824.         - del $@
  825.         move $? $@
  826.  
  827. $(PRODN)\uux.exe: uuxn.exe
  828.         - del $@
  829.         move $? $@
  830.  
  831. $(PRODN)\uuname.exe: uunamen.exe
  832.         - del $@
  833.         move $? $@
  834.  
  835. $(PRODN)\uuio.bat: $(SCRIPTS)\uuio.bat
  836.         copy $? $@
  837.  
  838. $(PRODN)\waiting.bat: $(SCRIPTS)\waiting.bat
  839.         copy $? $@
  840.  
  841. $(PRODN)\su.bat: $(SCRIPTS)\su.bat
  842.         copy $? $@
  843.  
  844. $(PRODN)\mailchek.bat: $(SCRIPTS)\mailchek.bat
  845.         copy $? $@
  846.  
  847. $(PRODN)\uuclean.bat: $(SCRIPTS)\uuclean.bat
  848.         copy $? $@
  849.  
  850. # *--------------------------------------------------------------------*
  851. # *               The commands to actually link files                  *
  852. # *--------------------------------------------------------------------*
  853.  
  854. expiren.exe: $(EXPIREOBJ) $(LIBCOMM) $(LIBNT)
  855.         $(LINKER) $(LINKNOPT) /OUT:$@ $(EXPIREOBJ) $(NTLIBS)
  856.  
  857. expirep.exe: $(DEFFILE) $(EXPIREOBJ) $(LIBCOMM) $(LIBOS2)
  858.         $(LINKER) $(LINKPOPT) @<<
  859. $(EXPIREOBJ)
  860. $@,NUL.,$(OS2LIBS)
  861. $(DEFFILE)
  862. <<
  863.  
  864. expirer.exe:     $(EXPIREOBJ)  $(LIBCOMM) $(LIBDOS)
  865.         $(LINKER) $(LINKROPT) @<<
  866. $(EXPIREOBJ)
  867. $@,NUL.,$(DOSLIBS);
  868. <<
  869.  
  870. fmtn.exe: $(OBJ)\fmt.obj $(LIBCOMM) $(LIBNT)
  871.         $(LINKER) $(LINKNOPT) /OUT:$@ $(OBJ)\fmt.obj $(NTLIBS)
  872.  
  873. fmtp.exe: $(DEFFILE) $(OBJ)\fmt.obj $(LIBCOMM) $(LIBOS2)
  874.         $(LINKER) $(LINKPOPT) @<<
  875. $(OBJ)\fmt.obj
  876. $@,NUL.,$(OS2LIBS)
  877. $(DEFFILE)
  878. <<
  879.  
  880. gensign.exe: $(OBJ)\gensig.obj $(LIBCOMM) $(LIBNT)
  881.         $(LINKER) $(LINKNOPT) /OUT:$@ $(OBJ)\gensig.obj $(NTLIBS)
  882.  
  883. gensigp.exe:     $(DEFFILE) $(OBJ)\gensig.obj $(LIBCOMM) $(LIBOS2)
  884.         $(LINKER) $(LINKPOPT) @<<
  885. $(OBJ)\gensig.obj
  886. $@,NUL.,$(OS2LIBS)
  887. $(DEFFILE)
  888. <<
  889.  
  890. gensigr.exe:     $(OBJ)\gensig.obj $(LIBCOMM) $(LIBDOS)
  891.         $(LINKER) $(LINKROPT) @<<
  892. $(OBJ)\gensig.obj
  893. $@,NUL.,$(DOSLIBS);
  894. <<
  895.  
  896. novrstrn.exe: $(OBJ)\novrstrk.obj $(LIBCOMM) $(LIBNT)
  897.         $(LINKER) $(LINKNOPT) /OUT:$@ $(OBJ)\novrstrk.obj $(NTLIBS)
  898.  
  899. novrstrp.exe:     $(DEFFILE) $(OBJ)\novrstrk.obj $(LIBCOMM) $(LIBOS2)
  900.         $(LINKER) $(LINKPOPT) @<<
  901. $(OBJ)\novrstrk.obj
  902. $@,NUL.,$(OS2LIBS)
  903. $(DEFFILE)
  904. <<
  905.  
  906. mailn.exe: $(MAILNOBJ) $(LIBCOMM) $(LIBNT)
  907.         $(LINKER) $(LINKNOPT) /OUT:$@ $(NTLIBS) $(MAILNOBJ)
  908.  
  909. mailp.exe:         $(DEFFILE) $(MAILPOBJ) $(LIBCOMM) $(LIBOS2)
  910.         $(LINKER) $(LINKPOPT) @<<
  911. $(MAILPOBJ)
  912. $@,NUL.,$(OS2LIBS)
  913. $(DEFFILE)
  914. <<
  915.  
  916. mailr.exe:     $(MAILROBJ) $(LIBCOMM) $(LIBDOS)
  917.         $(LINKER) $(LINKROPT) @<<
  918. $(MAILROBJ)
  919. $@,NUL.,$(DOSLIBS);
  920. <<
  921.  
  922. newsetpn.exe: $(NEWSETUPOBJ) $(LIBCOMM) $(LIBNT)
  923.         $(LINKER) $(LINKNOPT) /OUT:$@ $(NEWSETUPOBJ) $(NTLIBS)
  924.  
  925. newsetpp.exe:     $(DEFFILE) $(NEWSETUPOBJ) $(LIBCOMM) $(LIBOS2)
  926.         $(LINKER) $(LINKPOPT) @<<
  927. $(NEWSETUPOBJ)
  928. $@,NUL.,$(OS2LIBS)
  929. $(DEFFILE)
  930. <<
  931.  
  932. newsetpr.exe:        $(NEWSETUPOBJ) $(LIBCOMM) $(LIBDOS)
  933.         $(LINKER) $(LINKROPT) @<<
  934. $(NEWSETUPOBJ)
  935. $@,NUL.,$(DOSLIBS);
  936. <<
  937.  
  938. rnn.exe: $(RNOBJ) $(LIBCOMM) $(LIBNT)
  939.         $(LINKER) $(LINKNOPT) /OUT:$@ $(RNOBJ1) $(RNOBJ2) $(RNOBJ3) $(NTLIBS)
  940.  
  941. rnp.exe:        $(DEFFILE) $(RNOBJ) $(LIBCOMM) $(LIBOS2)
  942.         $(LINKER) $(LINKPOPT) @<<
  943. $(RNOBJ1)+
  944. $(RNOBJ2)+
  945. $(RNOBJ3)
  946. $@,NUL.,$(OS2LIBS)
  947. $(DEFFILE)
  948. <<
  949.  
  950. rnr.exe:        $(RNOBJ) $(LIBCOMM) $(LIBDOS)
  951.         $(LINKER) $(LINKROPT) @<<
  952. $(RNOBJ1)+
  953. $(RNOBJ2)+
  954. $(RNOBJ3)
  955. $@,NUL.,$(DOSLIBS);
  956. <<
  957.  
  958. rmailn.exe: $(RMAILOBJ) $(LIBCOMM) $(LIBNT)
  959.         $(LINKER) $(LINKNOPT) /OUT:$@ $(RMAILOBJ) $(NTLIBS)
  960.  
  961. rmailp.exe:     $(DEFFILE) $(RMAILOBJ) $(LIBCOMM) $(LIBOS2)
  962.         $(LINKER) $(LINKPOPT) @<<
  963. $(RMAILOBJ)
  964. $@,NUL.,$(OS2LIBS)
  965. $(DEFFILE)
  966. <<
  967.  
  968. rmailr.exe:     $(RMAILOBJ) $(LIBCOMM) $(LIBDOS)
  969.         $(LINKER) $(LINKROPT) @<<
  970. $(RMAILOBJ)
  971. $@,NUL.,$(DOSLIBS);
  972. <<
  973.  
  974. rnewsn.exe: $(RNEWSOBJ) $(LIBCOMM) $(LIBNT)
  975.         $(LINKER) $(LINKNOPT) /OUT:$@ $(RNEWSOBJ) $(NTLIBS)
  976.  
  977. rnewsp.exe:     $(DEFFILE) $(RNEWSOBJ) $(LIBCOMM) $(LIBOS2)
  978.         $(LINKER) $(LINKPOPT) @<<
  979. $(RNEWSOBJ)
  980. $@,NUL.,$(OS2LIBS)
  981. $(DEFFILE)
  982. <<
  983.  
  984. rnewsr.exe:     $(RNEWSOBJ)  $(LIBCOMM) $(LIBDOS)
  985.         $(LINKER) $(LINKROPT) @<<
  986. $(RNEWSOBJ)
  987. $@,NUL.,$(DOSLIBS);
  988. <<
  989.  
  990. uucicon.exe: $(UUCICOOBJ1) $(UUCICOOBJ2) $(UUCICONOBJ3) \
  991.                   $(LIBCOMM) $(LIBNT)
  992.         $(LINKER) $(LINKNOPT) /OUT:$@ $(NTLIBS) $(UUCICOOBJ1) $(UUCICOOBJ2) \
  993.            $(UUCICONOBJ3)
  994.  
  995. uucicop.exe:      $(DEFFILE) $(UUCICOOBJ1) $(UUCICOOBJ2) $(UUCICOPOBJ3) \
  996.                   $(LIBCOMM) $(LIBOS2)
  997.         $(LINKER) $(LINKPOPT) @<<
  998. $(UUCICOOBJ1)+
  999. $(UUCICOOBJ2)+
  1000. $(UUCICOPOBJ3)
  1001. $@,NUL.,$(OS2LIBS)
  1002. $(DEFFILE)
  1003. <<
  1004.  
  1005. uucicor.exe:     $(UUCICOOBJ1) $(UUCICOOBJ2) $(UUCICOROBJ3)\
  1006.                   $(LIBCOMM) $(LIBDOS)
  1007.         $(LINKER) $(LINKROPT) @<<
  1008. $(UUCICOOBJ1)+
  1009. $(UUCICOOBJ2)+
  1010. $(UUCICOROBJ3)
  1011. $@,NUL.,$(DOSLIBS);
  1012. <<
  1013.  
  1014. uucpn.exe: $(UUCPOBJ) $(LIBCOMM) $(LIBNT)
  1015.         $(LINKER) $(LINKNOPT) /OUT:$@ $(UUCPOBJ) $(NTLIBS)
  1016.  
  1017. uucpp.exe:     $(DEFFILE) $(UUCPOBJ) $(LIBCOMM) $(LIBOS2)
  1018.         $(LINKER) $(LINKPOPT) @<<
  1019. $(UUCPOBJ)
  1020. $@,NUL.,$(OS2LIBS)
  1021. $(DEFFILE)
  1022. <<
  1023.  
  1024. uucpr.exe:     $(UUCPOBJ) $(LIBCOMM) $(LIBDOS)
  1025.         $(LINKER) $(LINKROPT) @<<
  1026. $(UUCPOBJ)
  1027. $@,NUL.,$(DOSLIBS);
  1028. <<
  1029.  
  1030. uunamen.exe: $(OBJ)\uuname.obj $(LIBCOMM) $(LIBNT)
  1031.         $(LINKER) $(LINKNOPT) /OUT:$@ $(OBJ)\uuname.obj $(NTLIBS)
  1032.  
  1033. uunamep.exe:     $(DEFFILE) $(OBJ)\uuname.obj $(LIBCOMM) $(LIBOS2)
  1034.         $(LINKER) $(LINKPOPT) @<<
  1035. $(OBJ)\uuname.obj
  1036. $@,NUL.,$(OS2LIBS)
  1037. $(DEFFILE)
  1038. <<
  1039.  
  1040. uupolln.exe: $(POLLNOBJ) $(LIBCOMM) $(LIBNT)
  1041.         $(LINKER) $(LINKNOPT) /OUT:$@ $(POLLNOBJ) $(NTLIBS)
  1042.  
  1043. uupollp.exe:     $(DEFFILE)  $(POLLPOBJ) $(LIBCOMM) $(LIBOS2)
  1044.         $(LINKER) $(LINKPOPT) @<<
  1045. $(POLLPOBJ)
  1046. $@,NUL.,$(OS2LIBS)
  1047. $(DEFFILE)
  1048. <<
  1049.  
  1050. uupollr.exe:      $(POLLROBJ)  $(LIBCOMM) $(LIBDOS)
  1051.         $(LINKER) $(LINKROPT) @<<
  1052. $(POLLROBJ)
  1053. $@,NUL.,$(DOSLIBS);
  1054. <<
  1055.  
  1056. uuportp.exe:     $(DEFFILE)  $(OBJ)/uuport.obj $(LIBCOMM) $(LIBOS2)
  1057.         $(LINKER) $(LINKPOPT) @<<
  1058. $(OBJ)\uuport.obj
  1059. $@,NUL.,$(OS2LIBS)
  1060. $(DEFFILE)
  1061. <<
  1062.  
  1063. uustatn.exe: $(UUSTATOBJ) $(LIBCOMM) $(LIBNT)
  1064.         $(LINKER) $(LINKNOPT) /OUT:$@ $(UUSTATOBJ) $(NTLIBS)
  1065.  
  1066. uustatp.exe:     $(DEFFILE)  $(UUSTATOBJ) $(LIBCOMM) $(LIBOS2)
  1067.         $(LINKER) $(LINKPOPT) @<<
  1068. $(UUSTATOBJ)
  1069. $@,NUL.,$(OS2LIBS)
  1070. $(DEFFILE)
  1071. <<
  1072.  
  1073. uustatr.exe:      $(UUSTATOBJ) $(LIBCOMM) $(LIBDOS)
  1074.         $(LINKER) $(LINKROPT) @<<
  1075. $(UUSTATOBJ)
  1076. $@,NUL.,$(DOSLIBS);
  1077. <<
  1078.  
  1079. uusubn.exe: $(UUSUBOBJ) $(LIBCOMM) $(LIBNT)
  1080.         $(LINKER) $(LINKNOPT) /OUT:$@ $(UUSUBOBJ) $(NTLIBS)
  1081.  
  1082. uusubp.exe:      $(DEFFILE) $(UUSUBOBJ) $(LIBCOMM) $(LIBOS2)
  1083.         $(LINKER) $(LINKPOPT) @<<
  1084. $(UUSUBOBJ)
  1085. $@,NUL.,$(OS2LIBS)
  1086. $(DEFFILE)
  1087. <<
  1088.  
  1089. uusubr.exe:      $(UUSUBOBJ)  $(LIBCOMM) $(LIBDOS)
  1090.         $(LINKER) $(LINKROPT) @<<
  1091. $(UUSUBOBJ)
  1092. $@,NUL.,$(DOSLIBS);
  1093. <<
  1094.  
  1095. uuxn.exe: $(UUXOBJ) $(LIBCOMM) $(LIBNT)
  1096.         $(LINKER) $(LINKNOPT) /OUT:$@ $(UUXOBJ) $(NTLIBS)
  1097.  
  1098. uuxp.exe:      $(DEFFILE) $(UUXOBJ) $(LIBCOMM) $(LIBOS2)
  1099.         $(LINKER) $(LINKPOPT) @<<
  1100. $(UUXOBJ)
  1101. $@,NUL.,$(OS2LIBS)
  1102. $(DEFFILE)
  1103. <<
  1104.  
  1105. uuxr.exe:      $(UUXOBJ)  $(LIBCOMM) $(LIBDOS)
  1106.         $(LINKER) $(LINKROPT) @<<
  1107. $(UUXOBJ)
  1108. $@,NUL.,$(DOSLIBS);
  1109. <<
  1110.  
  1111. uuxqtn.exe: $(UUXQTOBJ) $(LIBCOMM) $(LIBNT)
  1112.         $(LINKER) $(LINKNOPT) /OUT:$@ $(UUXQTOBJ) $(NTLIBS)
  1113.  
  1114. uuxqtp.exe:      $(DEFFILE) $(UUXQTOBJ) $(LIBCOMM) $(LIBOS2)
  1115.         $(LINKER) $(LINKPOPT) @<<
  1116. $(UUXQTOBJ)
  1117. $@,NUL.,$(OS2LIBS)
  1118. $(DEFFILE)
  1119. <<
  1120.  
  1121. uuxqtr.exe:      $(UUXQTOBJ) $(LIBCOMM) $(LIBDOS)
  1122.         $(LINKER) $(LINKROPT) @<<
  1123. $(UUXQTOBJ)
  1124. $@,NUL.,$(DOSLIBS);
  1125. <<
  1126.  
  1127. testulib.exe:   $(OBJ)\testulib.obj $(OBJ)\ulib.obj $(OBJ)\comm.obj \
  1128.                 $(LIBCOMM) $(LIBDOS)
  1129.         $(LINKER) $(LINKROPT) @<<
  1130. $(OBJ)\testulib.obj $(OBJ)\ulib.obj $(OBJ)\comm.obj
  1131. $@,NUL.,$(DOSLIBS);
  1132. <<
  1133.  
  1134. # *--------------------------------------------------------------------*
  1135. # *                         Definition files                           *
  1136. # *--------------------------------------------------------------------*
  1137.  
  1138. $(DEFFILE):     $(MAKEFILE)
  1139.        copy << $@
  1140. name windowcompat newfiles
  1141. Description 'UUPC/extended $(VERS), Changes Copyright (c) 1989-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1142. stacksize 8192
  1143. exetype OS2
  1144. <<
  1145.  
  1146. # *--------------------------------------------------------------------*
  1147. # *                        Clean up after rn                           *
  1148. # *--------------------------------------------------------------------*
  1149.  
  1150. rn-clean:
  1151.                 - del $(RNOBJ)
  1152.                 - del rnp.exe
  1153.  
  1154. # *--------------------------------------------------------------------*
  1155. # *                          The zip files                             *
  1156. # *--------------------------------------------------------------------*
  1157.  
  1158. $(OS2ZIPV2):  $(INSTALLP2) $(README)
  1159.        - mkdir $(SRCSLASH)$(VERS)
  1160.        -12 $(ZIP) $(ZIPOPT2) < <<
  1161.        $(?: =^
  1162.        )
  1163. <<
  1164.        $(ZIP) -z $@  < <<
  1165. Kendra Electronic Wonderworks: UUPC/extended $(VERS) OS/2 executables (1 of 3)
  1166.  
  1167. Changes and Compilation Copyright (c) 1989-1993 by Kendra Electronic
  1168. Wonderworks.  May be distributed freely if original source and documentation
  1169. files are included.  Please direct all questions on UUPC/extended to
  1170. help@kew.com.
  1171. <<
  1172.  
  1173. $(OS2ZIPV3):  $(INSTALLP3) $(INSTALLPS) $(README)
  1174.        - mkdir $(SRCSLASH)$(VERS)
  1175.        -12 $(ZIP) $(ZIPOPT2) < <<
  1176.        $(?: =^
  1177.        )
  1178. <<
  1179.        $(ZIP) -z $@  < <<
  1180. Kendra Electronic Wonderworks: UUPC/extended $(VERS) OS/2 executables (2 of 3)
  1181.  
  1182. Changes and Compilation Copyright (c) 1989-1993 by Kendra Electronic
  1183. Wonderworks.  May be distributed freely if original source and documentation
  1184. files are included.  Please direct all questions on UUPC/extended to
  1185. help@kew.com.
  1186. <<
  1187.  
  1188. $(OS2ZIPV4):  $(INSTALLP4) $(README)
  1189.        - mkdir $(SRCSLASH)$(VERS)
  1190.        -12 $(ZIP) $(ZIPOPT2) < <<
  1191.        $(?: =^
  1192.        )
  1193. <<
  1194.        $(ZIP) -z $@  < <<
  1195. Kendra Electronic Wonderworks: UUPC/extended $(VERS) OS/2 executables (3 of 3)
  1196.  
  1197. Changes and Compilation Copyright (c) 1989-1993 by Kendra Electronic
  1198. Wonderworks.  May be distributed freely if original source and documentation
  1199. files are included.  Please direct all questions on UUPC/extended to
  1200. help@kew.com.
  1201. <<
  1202.  
  1203. # *--------------------------------------------------------------------*
  1204. # *                       Windows/NT ZIP files                         *
  1205. # *--------------------------------------------------------------------*
  1206.  
  1207. $(WNTZIPV1):  $(INSTALLN2) $(README)
  1208.        - mkdir $(SRCSLASH)$(VERS)
  1209.        -12 $(ZIP) $(ZIPOPT2) < <<
  1210.        $(?: =^
  1211.        )
  1212. <<
  1213.        $(ZIP) -z $@  < <<
  1214. Kendra Electronic Wonderworks: UUPC/extended $(VERS) Win NT executables (1 of 3)
  1215.  
  1216. Special credit to David M. Watt for performing the Windows NT port.
  1217.  
  1218. Changes and Compilation Copyright (c) 1989-1993 by Kendra Electronic
  1219. Wonderworks.  May be distributed freely if original source and documentation
  1220. files are included.  Please direct all questions on UUPC/extended to
  1221. help@kew.com.
  1222. <<
  1223.  
  1224. $(WNTZIPV2):  $(INSTALLN3) $(INSTALLNS) $(README)
  1225.        - mkdir $(SRCSLASH)$(VERS)
  1226.        -12 $(ZIP) $(ZIPOPT2) < <<
  1227.        $(?: =^
  1228.        )
  1229. <<
  1230.        $(ZIP) -z $@  < <<
  1231. Kendra Electronic Wonderworks: UUPC/extended $(VERS) Win NT exe
  1232.  
  1233. Special credit to David M. Watt for performing the Windows NT port.
  1234.  
  1235. Changes and Compilation Copyright (c) 1989-1993 by Kendra Electronic
  1236. Wonderworks.  May be distributed freely if original source and documentation
  1237. files are included.  Please direct all questions on UUPC/extended to
  1238. help@kew.com.
  1239. <<
  1240.  
  1241. $(WNTZIPV3):  $(INSTALLN4) $(README)
  1242.        - mkdir $(SRCSLASH)$(VERS)
  1243.        -12 $(ZIP) $(ZIPOPT2) < <<
  1244.        $(?: =^
  1245.        )
  1246. <<
  1247.        $(ZIP) -z $@  < <<
  1248. Kendra Electronic Wonderworks: UUPC/extended $(VERS) Win NT executables (3 of 3)
  1249.  
  1250. Special credit to David M. Watt for performing the Windows NT port.
  1251.  
  1252. Changes and Compilation Copyright (c) 1989-1993 by Kendra Electronic
  1253. Wonderworks.  May be distributed freely if original source and documentation
  1254. files are included.  Please direct all questions on UUPC/extended to
  1255. help@kew.com.
  1256. <<
  1257.  
  1258. # *--------------------------------------------------------------------*
  1259. # *                    Build the object libraries                      *
  1260. # *--------------------------------------------------------------------*
  1261.  
  1262. !IF "$(OS)" == "Windows_NT"
  1263.  
  1264. $(LIBCOMM): $(LIBLIST)
  1265.          lib32 /out:$@ $(LIBLIST)
  1266.  
  1267. !ELSE
  1268. $(LIBCOMM): $(LIBLIST)
  1269.         lib /noignorecase $@ @<<
  1270. -+$(?: =&^
  1271. -+)
  1272. nul;
  1273. <<
  1274.  
  1275. !ENDIF
  1276.  
  1277. $(LIBDOS): $(LIBDOSLIST)
  1278.         lib /noignorecase $@ @<<
  1279. -+$(?: =&^
  1280. -+)
  1281. nul;
  1282. <<
  1283.  
  1284. $(LIBOS2): $(LIBOS2LIST)
  1285.         lib /noignorecase $@ @<<
  1286. -+$(?: =&^
  1287. -+)
  1288. nul;
  1289. <<
  1290.  
  1291. $(LIBNT): $(LIBNTLIST)
  1292.         lib32 /out:$@ $(LIBNTLIST)
  1293.  
  1294. # *--------------------------------------------------------------------*
  1295. # *                Compile the various object files.                   *
  1296. # *--------------------------------------------------------------------*
  1297.  
  1298. $(OBJ)\commlib2.obj:  $(UUCICO)\commlib.c $(UUCICO)\commlib.h $(UULIB)\lib.h
  1299.         $(CC) $(CCOPT) /DFAMILYAPI $(UUCICO)\$(@B:2=).c
  1300.  
  1301. $(OBJ)\dcpsys2.obj:  $(UUCICO)\dcpsys.c $(UUCICO)\dcpsys.h $(UULIB)\lib.h
  1302.         $(CC) $(CCOPT) /DFAMILYAPI $(UUCICO)\$(@B:2=).c
  1303.  
  1304. $(OBJ)\mlib2.obj: $(MAIL)\mlib.c $(UULIB)\lib.h $(UULIB)\hlib.h
  1305.         $(CC) $(CCOPT) /DFAMILYAPI $(MAIL)\$(@B:2=).c
  1306.  
  1307. $(OBJ)\import2.obj: $(UULIB)\import.c $(UULIB)\lib.h $(UULIB)\import.h
  1308.         $(CC) $(CCOPT) /DFAMILYAPI $(UULIB)\$(@B:2=).c
  1309.  
  1310. $(OBJ)\nbstime2.obj:  $(UUCICO)\nbstime.c $(UULIB)\lib.h $(UULIB)\arpadate.h\
  1311.         $(UUCICO)\dcp.h $(UUCICO)\dcpsys.h $(UULIB)\hostable.h\
  1312.         $(UUCICO)\nbstime.h $(UUCICO)\script.h $(UULIB)\security.h\
  1313.         $(UUCICO)\ulib.h
  1314.         $(CC) $(CCOPT) /DFAMILYAPI $(UUCICO)\$(@B:2=).c
  1315.  
  1316. $(OBJ)\safeio2.obj: $(UULIB)\safeio.c $(UULIB)\lib.h $(UULIB)\safeio.h
  1317.         $(CC) $(CCOPT) /DFAMILYAPI $(UULIB)\$(@B:2=).c
  1318.  
  1319. $(OBJ)\safeout2.obj: $(UULIB)\safeout.c $(UULIB)\lib.h $(UULIB)\safeio.h
  1320.         $(CC) $(CCOPT) /DFAMILYAPI $(UULIB)\$(@B:2=).c
  1321.  
  1322. $(OBJ)\ssleep2.obj: $(UULIB)\ssleep.c $(UULIB)\lib.h $(UULIB)\ssleep.h
  1323.         $(CC) $(CCOPT) /DFAMILYAPI $(UULIB)\$(@B:2=).c
  1324.  
  1325. $(OBJ)\trumpet2.obj: $(UULIB)\trumpet.c $(UULIB)\lib.h $(UULIB)\trumpet.h
  1326.         $(CC) $(CCOPT) /DFAMILYAPI $(UULIB)\$(@B:2=).c
  1327.  
  1328. # *--------------------------------------------------------------------*
  1329. # *     The timestamp module has a reference to this MAKEFILE,         *
  1330. # *     which insures whenever we change the version number the        *
  1331. # *     time stamp gets re-generated.                                  *
  1332. # *--------------------------------------------------------------------*
  1333.  
  1334. $(TIMESTMP): $(UULIB)\timestmp.c $(UULIB)\lib.h $(UULIB)\timestmp.h\
  1335.         $(UULIB)\win32ver.h \
  1336.         $(MAKEFILE) $(REGEN)
  1337.         $(CC) $(CCOPT) $(UULIB)\$(@B).c
  1338.  
  1339. $(UULIB)\win32ver.h: $(MAKEFILE) $(REGEN)
  1340.         copy << $@
  1341. /*--------------------------------------------------------------------*/
  1342. /*         DO NOT EDIT -- AUTOMATICALLY GENERATED BY MAKEFILE         */
  1343. /*--------------------------------------------------------------------*/
  1344.  
  1345. #define UUPCV "$(VERS)"         // UUPC/extended version number
  1346. <<
  1347.  
  1348. $(OBJ)\uupoll2.obj: $(UTIL)\uupoll.c $(UULIB)\getopt.h $(UULIB)\lib.h\
  1349.         $(UULIB)\timestmp.h $(UULIB)\ssleep.h $(UULIB)\arpadate.h
  1350.         $(CC) $(CCOPT) /DFAMILYAPI $(UTIL)\$(@B:2=).c
  1351.  
  1352. # *--------------------------------------------------------------------*
  1353. # *     Force a regeneration of the time stamp/version module.         *
  1354. # *--------------------------------------------------------------------*
  1355.  
  1356. regen:  $(UULIB)\timestmp.c
  1357.         - del $(OBJ)\timestmp.obj
  1358.  
  1359. # *--------------------------------------------------------------------*
  1360. # *   This is a special case, the assembler module which handles       *
  1361. # *   our I/O to the serial port for the DOS version.                  *
  1362. # *--------------------------------------------------------------------*
  1363.  
  1364. $(OBJ)\comm.obj: $(UUCICO)\comm.asm
  1365.         $(MASM) $(MASMOPTS) $(UUCICO)\$(@B) ,$@;
  1366.  
  1367. # *--------------------------------------------------------------------*
  1368. # *         Generate the source browser database for the PWB           *
  1369. # *--------------------------------------------------------------------*
  1370.  
  1371. $(MAKEFILE).bsc: $(SBRS)
  1372.         pwbrmake @<<
  1373. /o $(MAKEFILE).bsc $(SBRS)
  1374. <<
  1375.  
  1376. $(OBJ):
  1377.         - mkdir $(OBJ)
  1378.