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

📄 makefile

📁 汇编源代码大全4
💻
📖 第 1 页 / 共 3 页
字号:
# *--------------------------------------------------------------------*
# *     Program:        MAKEFILE                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:      Borland MAKE version 3.5                       *
# *     External files: MASM or TASM    (8088 Assembler)               *
# *                     BCC             (Borland C++ 3.1 compiler)     *
# *                     LINK or TLINK   (MS-DOS Linker)                *
# *                     TDSTRIP         (Turbo debugger utility).      *
# *                     MOVE.COM        (Rename files between          *
# *                                     directories)                   *
# *                     Input source files.                            *
# *                                                                    *
# *   Changes Copyright (c) 1989-1993 by Kendra Electronic             *
# *   Wonderworks.                                                     *
# *                                                                    *
# *   All rights reserved except those explicitly granted by the       *
# *   UUPC/extended license agreement.                                 *
# *                                                                    *
# *     Note:   This file and the associated sources really do         *
# *             require the Borland C++ 3.1 compiler; various          *
# *             functions within the source call ANSI functions        *
# *             not available in older versions of the compiler.       *
# *                                                                    *
# *     Note:   MOVE can be created by putting a COPY followed by a    *
# *             ERASE in a MOVE.BAT file.  This is slower than a true  *
# *             move program (which just renames between directories), *
# *             but life is hard.                                      *
# *--------------------------------------------------------------------*
#
#     $Id: makefile 1.32 1993/10/04 15:51:54 ahd Exp $
#
#     Revision history:
#     $Log: makefile $
#         Revision 1.32  1993/10/04  15:51:54  ahd
#         Use only root name for adding 00readme.now
#
#         Revision 1.31  1993/10/04  15:41:24  ahd
#         Drop unneeded variables from definition file for nested make commands
#         Include 00readme.now in all archives
#         Generate final release names for all archives
#
#         Revision 1.30  1993/10/04  03:56:57  ahd
#         Build doc zip seperately
#
#         Revision 1.29  1993/10/02  23:45:02  ahd
#         Don't build rnews for windows
#
#         Revision 1.28  1993/10/02  19:06:24  ahd
#         Use full path names to aid debugging
#
#         Revision 1.27  1993/10/01  01:24:32  ahd
#         Force source rebuild more often
#
#         Revision 1.26  1993/09/29  13:17:11  ahd
#         Correct deletion of debugger (*.TDS) files under Windows
#
#         Revision 1.25  1993/09/29  04:47:51  ahd
#         Add unique signal handler for port suspending
#
#         Revision 1.24  1993/09/27  02:41:37  ahd
#         Use full source path for files to aid in DOS debugging
#
#         Revision 1.23  1993/09/27  00:44:01  ahd
#         Make build slient
#
#         Revision 1.22  1993/09/23  03:26:11  ahd
#         Make mail medium model
#
#         Revision 1.21  1993/09/20  04:35:34  ahd
#         Borland C++ for OS/2 1.0 support
#         TCP/IP support from Dave Watt
#         't' protocol support
#
#         Revision 1.20  1993/08/03  12:19:38  ahd
#         Upper case names
#
#         Revision 1.19  1993/08/02  03:21:28  ahd
#         Rename zip files
#         use ZIP instead of PKZIP
#         explicitly use MAKER for nested makes (need MAKE for master to
#         keep ZIP from running of out DOS memory)
#
#         Revision 1.18  1993/07/31  16:20:41  ahd
#         Clean-up in support of Windows versions
#
#         Revision 1.17  1993/07/22  23:18:38  ahd
#         Rename UUPCLIBW
#
#         Revision 1.16  1993/06/06  15:03:51  ahd
#         Move to release 1.12a
#
#         Revision 1.15  1993/05/30  16:05:22  ahd
#         Del workfile to correct pkzip archiving too much
#
#         Revision 1.14  1993/05/16  13:17:21  ahd
#         Rename nmake to mscmake
#
#         Revision 1.13  1993/04/19  13:16:08  ahd
#         Begin version 1.11z
#
#         Revision 1.12  1993/04/16  02:43:27  ahd
#         Do not archive bad rn source
#
#         Revision 1.11  1993/04/16  02:31:47  ahd
#         Drop broken rn/newsetup from build for now
#
#         Revision 1.10  1993/04/11  21:09:10  ahd
#         Drop GNU oriented Makefile
#
#       Revision 1.9  1992/12/30  12:40:31  plummer
#       Update version
#
#       Revision 1.9  1992/12/30  12:40:31  plummer
#       Update version
#
#       Revision 1.8  1992/12/18  13:05:00  ahd
#       Drop system aliases
#
#       Revision 1.7  1992/12/11  12:43:53  ahd
#       Add aliases file to list of samples
#
#       Revision 1.6  1992/12/04  00:59:25  ahd
#       Add copyright statements
#
#       Revision 1.5  1992/11/29  22:39:15  ahd
#       Add *.txt files to documentation archive (for RFC's)
#
#       Revision 1.4  1992/11/23  02:43:59  ahd
#       Add scripts (batch files) to RCS
#       Change expire.com and rnews.com to exe files
#
#       Revision 1.3  1992/11/22  21:04:42  ahd
#       Add normalize() to build
#
#       Revision 1.2  1992/11/18  01:34:57  ahd
#       Drop -k flag
#
#       Revision 1.1  1992/11/10  04:11:14  ahd
#       Initial revision
#
#       Revision 1.2  1992/05/03  17:19:14  ahd
#       Add library inclusion to generation of small .COM files

.autodepend

.silent

#       The memory model to be built, and other environment
#       specific information

WINMODEL=l

!if $d(__OS2__)
MODEL=2
SUFFIX   = $(MODEL)
PSUFFIX  = 2
DEFFILE  = $(TMP)\UUPCOS23.TMP
!elif $d(WINDOWS)
MODEL    = $(WINMODEL)
SUFFIX   = w$(MODEL)
PSUFFIX  = w
DEFFILE  = $(TMP)\UUPCWIND.TMP
!else
!if !$d(MODEL)
MODEL    = s
!endif
SUFFIX   = $(MODEL)
PSUFFIX  =
DEFFILE  =
!endif

#       Silly hack to allow back slash as last character in variable
SRC      = e:/src/uupc/
SRCSLASH = $(SRC:/=\)

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

# *--------------------------------------------------------------------*
# *                           Directories                              *
# *--------------------------------------------------------------------*

!if !$d(TMP)
TMP     = \TMP
!endif


DOCS    = $(SRCSLASH)DOCS
CONF    = \UUPC
LIB     = $(SRCSLASH)LIB
OBJ     = $(SRCSLASH)OBJBC$(SUFFIX)
MAIL    = $(SRCSLASH)MAIL
RNEWS   = $(SRCSLASH)RNEWS
RN      = $(SRCSLASH)RN
UTIL    = $(SRCSLASH)UTIL
UUCICO  = $(SRCSLASH)UUCICO
TEST    = $(SRCSLASH)TEST
UUCP    = $(SRCSLASH)UUCP
WINWORD = $(SRCSLASH)WINWORD
SCRIPT  = $(SRCSLASH)SCRIPTS
MAP     =
.path.obj  = $(OBJ)

!if !$d(ARCHIVE)
ARCHIVE = $(SRCSLASH)$(VERS)
!endif

!if !$d(PROD)
!if $d(__OS2__)
PROD    = \UUPC\OS2BIN32
!else
PROD    = \UUPC\BIN
!endif
!endif

!if !$d(WINPROD)
WINPROD = \UUPC\WINBIN
!endif

FMT     = $(PROD)\FMT.COM

!if !$d(BORLANDC)
!if $d(__OS2__)
BORLANDC = \BCOS2
!else
BORLANDC = \BORLANDC
!endif
!endif

!if !$d(BLIB)
BLIB =  $(BORLANDC)\LIB
!endif

!if !$d(BINC)
BINC =  $(BORLANDC)\INCLUDE
!endif

!if !$d(UUPCCFG)
UUPCCFG  = $(TMP)\UUPC$(SUFFIX).CFG
!endif

!if !$d(UUPCDEFS)
UUPCDEFS=$(TMP)\uupc$(SUFFIX).mak
!endif

UUPCDEFM=$(TMP)\uupcm.mak
UUPCDEFW=$(TMP)\uupcw$(WINMODEL).mak

COMMON  = $(UUPCCFG) $(UUPCDEFS) $(DEFFILE) $(LIBRARIES)

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

TIMESTMP = $(OBJ)\TIMESTMP.OBJ

WORKFILE = $(TMP)\UUPCTEMP.TMP

# *--------------------------------------------------------------------*
# *                Final locations of various targets                  *
# *--------------------------------------------------------------------*

LIVEFILES = $(DOCS)\ACTIVE.KEW $(DOCS)\PERMISSN.KEW $(DOCS)\ALIASES.KEW \
            $(DOCS)\kendra.rc $(DOCS)\ahd.rc $(DOCS)\hostpath.kew

LISTFILES = $(WINWORD)\advanced.prn $(WINWORD)\changes.prn \
            $(WINWORD)\commands.prn $(WINWORD)\files.prn \
            $(WINWORD)\howtoget.prn $(WINWORD)\install.prn \
            $(WINWORD)\license.prn $(WINWORD)\mail.prn \
            $(WINWORD)\register.prn $(WINWORD)\tilde.prn
README=     docs\00readme.now

REQUIRED= $(PROD)\mail.exe $(PROD)\rmail.exe $(PROD)\uucico.exe\
          $(PROD)\uuxqt.exe
SCRIPTS=  $(PROD)\su.bat $(PROD)\uuclean.bat $(PROD)\uuio.bat \
          $(PROD)\waiting.bat
OPTCOMM = $(PROD)\uucp.com $(PROD)\uuname.com $(PROD)\uupoll.exe\
          $(PROD)\uustat.com $(PROD)\uusub.com\
          $(PROD)\uuport.com \
          $(PROD)\uux.com $(FMT) $(PROD)\gensig.com $(PROD)\novrstrk.com

!if $d(__OS2__)
OPTIONAL= $(OPTCOMM:.com=.exe) \
          $(SCRIPTS:.bat=.cmd) $(PROD)\mailchek.cmd $(PROD)\getuupc.cmd
!else
OPTIONAL= $(OPTCOMM) $(PROD)\comm34.com $(SCRIPTS)

# *--------------------------------------------------------------------*
# *      Of the "required" modules, we only build UUCICO under         *
# *      Windows because the MAIL program is ugly and we prefer        *
# *      UUXQT run RMAIL and RNEWS as normal DOS programs.             *
# *--------------------------------------------------------------------*

#WREQUIRED=$(WINPROD)\mail.exe $(WINPROD)\rmail.exe $(WINPROD)\uucico.exe\
#          $(WINPROD)\uuxqt.exe
WREQUIRED=$(WINPROD)\uucico.exe
WOPTIONAL=$(WINPROD)\uucp.exe $(WINPROD)\uuname.exe $(WINPROD)\uupoll.exe\
          $(WINPROD)\uustat.exe $(WINPROD)\uusub.exe $(WINPROD)\uux.exe
WNEWS    =$(WINPROD)\expire.exe
#         $(WINPROD)\rnews.exe $(WINPROD)\rn.exe $(WINPROD)\newsetup.exe
!endif

NEWS    = $(PROD)\RNEWS.EXE $(PROD)\EXPIRE.EXE
#         $(PROD)\rn.exe $(PROD)\newsetup.exe

INSTALL = $(REQUIRED) $(OPTIONAL) $(NEWS) $(WREQUIRED) $(WOPTIONAL) $(WNEWS)

SAMPLES = $(DOCS)\SYSTEMS $(DOCS)\PASSWD $(DOCS)\HOSTPATH \
          $(DOCS)\personal.rc $(DOCS)\uupc.rc \
          $(DOCS)\personal.sig $(DOCS)\aliases.txt \
          $(DOCS)\mail.ico $(DOCS)\uucico.ico $(DOCS)\up-pif.dvp
SAMPLEX = SYSTEMS PASSWD HOSTPATH *.RC *.MDM PERSONAL.SIG ALIASES.TXT *.ICO

MAKEFILE = $(SRCSLASH)MAKEFILE

UUPCLIB  = $(TMP)\CUUPC$(SUFFIX).LIB
UUPCLIBW = $(TMP)\CUUPCW$(SUFFIX).LIB

!if $d(__OS2__)
STARTUP  = $(BLIB)\C02.obj
LIBRARY2 = $(BLIB)\C2.LIB
LIBRARY3 = $(BLIB)\os2.LIB
LIBRARY  = $(UUPCLIB)+$(LIBRARY2)+$(LIBRARY3)
!elif $d(WINDOWS)
STARTUP  = $(BLIB)\C0$(SUFFIX)
LIBRARY2 = $(BLIB)\C$(SUFFIX).LIB
LIBRARY3 = $(BLIB)\IMPORT.LIB
LIBRARY  = $(UUPCLIB)+$(LIBRARY2)+$(LIBRARY3)
!else
STARTUP  = $(BLIB)\C0$(SUFFIX)
STARTUPT = $(BLIB)\C0T
LIBRARY2 = $(BLIB)\C$(SUFFIX).LIB
LIBRARY  = $(UUPCLIB)+$(LIBRARY2)
!endif

LIBRARIES= $(LIBRARY:+= )

COMMON  = $(UUPCCFG) $(UUPCDEFS) $(DEFFILE) $(LIBRARIES)

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

!if $d(__OS2__)
REQZIPV = $(ARCHIVE)\$(ZIPPREFIX)21.ZIP
OPTZIPV = $(ARCHIVE)\$(ZIPPREFIX)22.ZIP
NEWZIPV = $(ARCHIVE)\$(ZIPPREFIX)23.ZIP
!else
REQZIPV = $(ARCHIVE)\$(ZIPPREFIX)D1.ZIP
OPTZIPV = $(ARCHIVE)\$(ZIPPREFIX)D2.ZIP
NEWZIPV = $(ARCHIVE)\$(ZIPPREFIX)D3.ZIP
WREQZIPV = $(ARCHIVE)\$(ZIPPREFIX)W1.ZIP
WOPTZIPV = $(ARCHIVE)\$(ZIPPREFIX)W2.ZIP
WNEWZIPV = $(ARCHIVE)\$(ZIPPREFIX)W3.ZIP
!endif

DOCZIPV = $(ARCHIVE)\$(ZIPPREFIX)AD.ZIP
WFWZIPV = $(ARCHIVE)\$(ZIPPREFIX)AW.ZIP
PSZIPV  = $(ARCHIVE)\$(ZIPPREFIX)AP.ZIP
SRCZIPV1 = $(ARCHIVE)\$(ZIPPREFIX)S1.ZIP
SRCZIPV2 = $(ARCHIVE)\$(ZIPPREFIX)S2.ZIP

# *--------------------------------------------------------------------*
# *     Various Program names and their options                        *
# *--------------------------------------------------------------------*

CC = BCC +$(UUPCCFG)
LINKER  = TLINK

!if $d(__OS2__)
LINKOPTN = /c /x /Toe /ap /B:0x10000
!elif $d(WINDOWS)
LINKOPTN = /c /x /yx /Twe
LINKOPTT = /c /x /t /Twe
!else
LINKOPTN = /c /x /yx
LINKOPTT = /c /x /t
!endif

LINKOPTD = $(LINKOPTN) /v

TASM    = tasm.exe
TASMOPT = /mx /z /zi /w3 /DUUPC
ZIP     = zip
ZIPOPT1 = -o -9 -u $< -@
ZIPOPT2 = -j $(ZIPOPT1)

!if $d(__OS2__)
MAKER=make
!else
MAKER=maker
!endif

# *--------------------------------------------------------------------*
# *                Begin rules for building modules.                   *
# *                                                                    *
# *        The first definition is the one built by default.           *
# *--------------------------------------------------------------------*

# *--------------------------------------------------------------------*
# *     test builds the basic UUPC modules in the source directory.    *
# *--------------------------------------------------------------------*

!if $d(__OS2__)
test:    mail$(PSUFFIX).exe uucico$(PSUFFIX).exe rmail$(PSUFFIX).exe\
         uuxqt$(PSUFFIX).exe uucp$(PSUFFIX).exe uupoll$(PSUFFIX).exe\
         uuport$(PSUFFIX).exe\
         uux$(PSUFFIX).exe uustat$(PSUFFIX).exe uusub$(PSUFFIX).exe\
         uuname$(PSUFFIX).exe rnews$(PSUFFIX).exe expire$(PSUFFIX).exe
!else

test:    mail.exe uucico.exe\
         rmail.exe uuxqt.exe uucp.exe uupoll.exe\
         uux.exe uustat.exe uusub.exe\
         rnews.exe expire.exe

windows: mailw.exe uucicow.exe\
         rmailw.exe uuxqtw.exe uucpw.exe uupollw.exe\
         uuxw.exe uustatw.exe uusubw.exe\
         rnewsw.exe expirew.exe
!endif

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

!if $d(__OS2__)
prod:   $(REQUIRED:.com=.exe) $(OPTIONAL:.com=.exe) $(NEWS:.com=.exe)
        - erase $(TIMESTMP)
        - erase $(UUPCLIB)
!else
prod:   $(INSTALL)
        - erase $(TIMESTMP)
        - erase $(UUPCLIB)
!endif

winprod:  commonw $(WREQUIRED) $(WOPTIONAL) $(WNEWS)
        - del *.tds

required: $(REQUIRED)

# *--------------------------------------------------------------------*
# *     Install builds the UUPC modules, installs the executables      *
# *     in the production directory, formats the documentation files,  *
# *     and creates PKZIP files for giving away.                       *
# *--------------------------------------------------------------------*


!if $d(__OS2__)
install:
        $(MAKER) -DNDEBUG=1 installx
!else
install: installx $(WREQZIPV) $(WOPTZIPV) $(WNEWZIPV)
!endif

doczip:  $(DOCZIPV)

installx: $(INSTALL) $(REQZIPV) $(OPTZIPV) $(NEWZIPV) \
          $(SRCZIPV1) $(SRCZIPV2) regen
        - erase $(WORKFILE)

⌨️ 快捷键说明

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