⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mscmake

📁 汇编源代码大全4
💻
📖 第 1 页 / 共 3 页
字号:
#       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-1993 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.37 1993/10/04 16:42:24 ahd Exp $
#
#       $Log: mscmake $
#         Revision 1.37  1993/10/04  16:42:24  ahd
#         Correct directory archives are created in
#
#         Revision 1.36  1993/10/04  15:40:46  ahd
#         Revise makefile to generate true release names
#         Include 00readme.now in all archives
#
#         Revision 1.35  1993/10/03  20:36:32  ahd
#         Force NUL as file name linkinh
#
#         Revision 1.34  1993/10/02  23:11:57  dmwatt
#         Add TCP/IP error messages
#
#         Revision 1.33  1993/10/02  19:05:48  ahd
#         Change stack size on DOS modules
#         Use full path name for files to aid debugging
#
#         Revision 1.32  1993/10/01  02:07:43  dmwatt
#         Add new prtynt.obj to parallel OS/2 version
#         Delete unneeded library paths
#
#         Revision 1.31  1993/09/29  04:47:26  ahd
#         Add unique signal handler for suspend port
#
#         Revision 1.30  1993/09/27  00:42:15  ahd
#         Add suspend of serial ports by K. Rommel
#
#         Revision 1.29  1993/09/20  04:34:28  ahd
#         TCP/IP support from Dave Watt
#         't' protocol support
#         Disable debug output when installing
#
#         Revision 1.28  1993/09/02  12:07:45  ahd
#         HPFS support
#
#         Revision 1.27  1993/08/26  04:59:46  ahd
#         Compile without WINT variable, other NT corrections on kendra
#
#         Revision 1.26  1993/08/02  03:21:04  ahd
#         Rename zip files
#
#         Revision 1.25  1993/07/31  16:19:27  ahd
#         Break trumpet into unique module
#         General clean up of unneeded definitions
#         Always use version header
#
#         Revision 1.24  1993/07/20  21:43:58  ahd
#         Use only one OS/2 definitions file (per Kae Uwe Rommel)
#
#         Revision 1.23  1993/06/15  12:17:34  ahd
#         Rename commfifo.asm to comm.asm
#
#         Revision 1.22  1993/06/06  15:03:35  ahd
#         Move to release 1.12A
#
#         Revision 1.21  1993/05/30  15:25:11  ahd
#         Add INT14 driver support
#
#         Revision 1.20  1993/05/10  02:47:43  ahd
#         Include getuupc.cmd in installed OS/2 files
#
#         Revision 1.19  1993/04/19  13:15:52  ahd
#         Begin version 1.11z
#
#         Revision 1.18  1993/04/17  13:40:13  ahd
#         Fix win/32 header build
#
#         Revision 1.17  1993/04/16  13:11:15  dmwatt
#         Build win/nt header file less often
#
#         Revision 1.16  1993/04/16  12:55:11  dmwatt
#         Add support for special Win/NT version id header
#
#         Revision 1.15  1993/04/14  02:42:33  ahd
#         Fix uucp target name for Windows/NT
#
#         Revision 1.14  1993/04/14  00:44:19  ahd
#         Drop use of FMT from ZIP file build
#         Add Windows/NT zip file build
#         Add credit for Dave and Windows/NT Build
#
#         Revision 1.13  1993/04/10  21:24:27  dmwatt
#         Add Windows/NT support
#
#    Revision 1.11  1993/04/05  12:25:39  ahd
#    Clean up .def files
#
#    Revision 1.10  1993/04/05  04:31:27  ahd
#    HPFS support (module definition files)
#
#    Revision 1.9  1993/04/04  04:55:31  ahd
#    Add uunamep.exe to testp: build
#
#    Revision 1.8  1993/03/24  01:57:13  ahd
#    rn support
#
#    Revision 1.7  1993/03/06  22:47:10  ahd
#    Generic build, including rn.exe
#
#    Revision 1.6  1993/01/23  19:07:01  ahd
#    Revise alias
#
#    Revision 1.5  1992/12/04  00:58:57  ahd
#    Add sysalias to rmail build
#
#    Revision 1.5  1992/12/04  00:58:57  ahd
#    Add sysalias to rmail build
#
#    Revision 1.4  1992/11/29  22:12:36  ahd
#    Correct TMP directory to TEMP
#    Add installation of OS/2 CMD files from RCS source directory
#    Change copyright message
#    Add build for TESTULIB.EXE
#
#    Revision 1.3  1992/11/27  14:37:55  ahd
#    Add scrsize() to library build
#
#    Revision 1.2  1992/11/22  21:04:42  ahd
#    Add normalize() to build

.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.12b

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

!IF "$(MODEL)" == ""
MODEL   = M
!ENDIF

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

!IF "$(OS)" == "Windows_NT"
!include <ntwin32.mak>
!ENDIF

# *--------------------------------------------------------------------*
# *   Various directories.  The TEMP 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

!IF "$(OS)" == "Windows_NT"
OBJ     = $(SRCSLASH)objmsnt
!ELSE
OBJ     = $(SRCSLASH)objms$(MODEL)
!ENDIF

SBR     = $(SRCSLASH)sbr
PRODP   = \uupc\os2bin
PRODR   = \uupc\bin
PRODN   = \uupc\ntbin
SCRIPTS = $(SRCSLASH)scripts

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

ZIPPREFIXX=UPC$(VERS:.=)
ZIPPREFIX=$(SRCSLASH)$(VERS)\$(ZIPPREFIXX:C1=C)

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  = $(TMP)\$(MODEL)uupcmsc.lib
LIBNT    = $(TMP)\uupcnt.lib
LIBOS2   = $(TMP)\$(MODEL)uupcos2.lib
LIBDOS   = $(TMP)\$(MODEL)uupcdos.lib
WORKFILE = $(TMP)\UUPCTEMP.TMP
DEFFILE  = $(TMP)\UUPCOS2T.TMP

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

NTLIBS=libc.lib $(LIBCOMM) $(LIBNT) $(conlibs) ADVAPI32.LIB WSOCK32.LIB
OS2LIBS=$(MODEL)libcep+$(LIBCOMM)+$(LIBOS2)+os2
DOSLIBS=$(MODEL)libce+$(LIBCOMM)+$(LIBDOS)

# *--------------------------------------------------------------------*
# *        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)\execute.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
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

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

# *--------------------------------------------------------------------*
# *             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
EXPIREOBJ = $(OBJ)\expire.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)\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)\dcpsys.obj \
              $(OBJ)\nbstime.obj $(OBJ)\ulibnt.obj $(OBJ)\ulibip.obj\
              $(OBJ)\dcptpkt.obj $(OBJ)\commlib.obj $(OBJ)\suspend.obj\
              $(OBJ)\prtynt.obj $(OBJ)\pwserr.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

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


ICONS   = $(PRODP)\mail.ico $(PRODP)\uucico.ico
INSTALLP = $(INSTALLP2) $(INSTALLP3) $(INSTALLP4) $(INSTALLPS)
INSTALLR = $(PRODR)\mail.exe $(PRODR)\rmail.exe $(PRODR)\rnews.exe\
          $(PRODR)\uupoll.exe $(PRODR)\uucico.exe $(PRODR)\uucp.exe\
          $(PRODR)\uusub.exe $(PRODR)\uuxqt.exe $(PRODR)\uux.exe\
          $(PRODR)\uustat.exe  $(PRODR)\rn.exe $(PRODR)\newsetup.exe

INSTALLP2= $(PRODP)\mail.exe $(PRODP)\rmail.exe $(PRODP)\uucico.exe\
          $(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 $(FMT) $(PRODP)\gensig.exe $(PRODP)\novrstrk.exe \
          $(PRODP)\su.cmd $(PRODP)\uuio.cmd $(PRODP)\uuclean.cmd\
          $(PRODP)\waiting.cmd $(PRODP)\mailchek.cmd $(PRODP)\getuupc.cmd
INSTALLP4= $(PRODP)\rnews.exe $(PRODP)\expire.exe
#         $(PRODP)\rn.exe $(PRODP)\newsetup.exe

INSTALLN2= $(PRODN)\mail.exe $(PRODN)\rmail.exe $(PRODN)\uucico.exe\
          $(PRODN)\uuxqt.exe
INSTALLN3= $(PRODN)\uucp.exe $(PRODN)\uuname.exe $(PRODN)\uupoll.exe\
          $(PRODN)\uustat.exe $(PRODN)\uusub.exe\
          $(PRODN)\uux.exe $(FMT) $(PRODN)\gensig.exe $(PRODN)\novrstrk.exe \
          $(PRODN)\su.bat $(PRODN)\uuio.bat $(PRODN)\uuclean.bat\
          $(PRODN)\waiting.bat
INSTALLN4= $(PRODN)\rnews.exe $(PRODN)\expire.exe
#         $(PRODN)\rn.exe $(PRODN)\newsetup.exe
INSTALLN  = $(INSTALLN1) $(INSTALLN2) $(INSTALLN3) $(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                     *
# *--------------------------------------------------------------------*

MAKEFILE = $(SRCSLASH)mscmake
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 "$(OS)" == "Windows_NT"
LINKER = $(link)
!ELSE
LINKER  = link
!ENDIF

LINKPOPT = /exepack /far /noignorecase /nod /batch

LINKNOPT = $(conflags) $(ldebug)

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

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

MASM    = masm.exe

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

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

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

!IF "$(OS)" == "Windows_NT"
CC      = cl
# CC is defined in ntwin32.mak, so no need for an ELSE clause here
!ENDIF


!IF "$(OS)" == "Windows_NT"
CCOPT   = $(cflags) $(cvars) -I$(UULIB) /Fo$@

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

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

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

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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -