?? makefile
字號:
####
# makefile - Makefile for Microsoft Visual C++ Run-Time Libraries
#
# Copyright (c) 1993-1997, Microsoft Corporation. All rights reserved.
#
# Purpose:
# This makefile builds the Visual C++ run-time release libraries.
# Just type NMAKE in the \MSDEV\CRT\SRC directory to build all target
# libraries.
#
###############################################################################
#
# The name of the user-generated C/C++ Run-Time Library DLL and
# imports library can be set here. Names beginning with MSVC*
# may not be used as these are reserved for use by Microsoft.
# The names shown here are samples and are for information only.
#
RETAIL_DLL_NAME=_sample_
RETAIL_LIB_NAME=_sample_
RETAIL_DLLCPP_NAME=sample_p
RETAIL_LIBCPP_NAME=sample_p
RETAIL_DLLIOS_NAME=sample_i
RETAIL_LIBIOS_NAME=sample_i
DEBUG_DLL_NAME=_sampld_
DEBUG_LIB_NAME=_sampld_
DEBUG_DLLCPP_NAME=sampld_p
DEBUG_LIBCPP_NAME=sampld_p
DEBUG_DLLIOS_NAME=sampld_i
DEBUG_LIBIOS_NAME=sampld_i
#
POST_BLD=1
# If your MSVC++ 6.0 installation is not in \MSDEV on the current drive,
# set the environment variable V6TOOLS to point to the main directory
# of your installation. (For example, "set V6TOOLS=C:\MSDEV".)
!if "$(V6TOOLS)"==""
V6TOOLS=\MSDEV
!endif
#
# Directories, Tools and Misc Definitions:
#
###############################################################################
#
# Determine target CPU, defaulting to same as host CPU.
#
###############################################################################
!if "$(PROCESSOR_ARCHITECTURE)"=="x86"
TARGET_CPU = i386
CPUDIR = intel
PREFIX=_
!elseif "$(PROCESSOR_ARCHITECTURE)"=="ALPHA"
TARGET_CPU = ALPHA
CPUDIR = alpha
PREFIX=
!elseif "$(PROCESSOR_ARCHITECTURE)"=="MIPS"
TARGET_CPU = mips
CPUDIR = mips
PREFIX=
!elseif "$(PROCESSOR_ARCHITECTURE)"=="PPC"
TARGET_CPU = PPC
CPUDIR = ppc
PREFIX=
!elseif "$(PROCESSOR_ARCHITECTURE)"=="PMAC"
TARGET_CPU = PMAC
CPUDIR = mppc
PREFIX=_
OS=MAC
!else
!error makefile: unknown host CPU
!endif
# Build WINHEAP version of heap manager, except for MAC targets
!if "$(TARGET_CPU)" != "PMAC"
WINHEAP = YES
!else
WINHEAP = NO
!endif
SOURCE_OBJS = $(SOURCE_OBJS_RAW:*=*_obj)
CPPSRC_OBJS = $(CPPSRC_OBJS_RAW:*=*_obj)
IOSSRC_OBJS = $(IOSSRC_OBJS_RAW:*=*_obj)
SOURCE_OBJS_DLL = $(SOURCE_OBJS_RAW_DLL:*=*_obj)
CPPSRC_OBJS_DLL = $(CPPSRC_OBJS_RAW_DLL:*=*_obj)
IOSSRC_OBJS_DLL = $(IOSSRC_OBJS_RAW_DLL:*=*_obj)
# Source directories:
#
# These are the directories in which to run NMAKE to update the source
# objects and libraries they provide. Note that there are slight
# differences between the ST/MT models and the DLL model.
#
# The dependencies directory list DEP_DIRS is the union of the MAKE_DIRS
# and MAKE_DIRS_DLL lists.
#
# In order to allow for auto source library calculation, each directory
# name must be preceded by a tilde (~) and followed by an asterisk (*).
!if "$(BLD_LIB)"==""
BLD_LIB=0
!endif
!if "$(BLD_OBJ)"==""
BLD_OBJ=0
!endif
PRE_BLD=0
MAKE_DIRS = .
MAKE_DIRSP = .
MAKE_DIRSI = .
MAKE_DIRS_DLL = .
MAKE_DIRSP_DLL = .
MAKE_DIRSI_DLL = .
DEP_DIRS = .
TCMAPLIB_DIR = $(CPUDIR)
TCMAPDLLLIB_DIR = $(CPUDIR)
SDKNAMESLIB_DIR = $(CPUDIR)
# Source Objects: These are the objects and/or libraries which constitute
# the statically linked library flavors (LIBC.LIB and LIBCMT.LIB).
SOURCE_OBJS_RAW = \
build\$(CPUDIR)\*\convert.lib \
!if "$(TARGET_CPU)"!="PMAC"
build\$(CPUDIR)\*\direct.lib \
!endif
build\$(CPUDIR)\*\dos.lib \
build\$(CPUDIR)\*\eh.lib \
build\$(CPUDIR)\*\exec.lib \
build\$(CPUDIR)\*\heap.lib \
build\$(CPUDIR)\*\helper.lib \
build\$(CPUDIR)\*\lowio.lib \
build\$(CPUDIR)\*\mbstring.lib \
build\$(CPUDIR)\*\misc.lib \
build\$(CPUDIR)\*\startup.lib \
build\$(CPUDIR)\*\stdio.lib \
build\$(CPUDIR)\*\string.lib \
$(TCMAPLIB_DIR)\tcmap.lib \
build\$(CPUDIR)\*\time.lib \
build\$(CPUDIR)\*\conv.lib \
build\$(CPUDIR)\*\tran.lib
CPPSRC_OBJS_RAW = build\$(CPUDIR)\*\stdcpp.lib
IOSSRC_OBJS_RAW = build\$(CPUDIR)\*\iostream.lib
# Source Objects: These are the objects and/or libraries which constitute
# the dynamically linked library flavor (MSVCRTx0.DLL).
SOURCE_OBJS_RAW_DLL = \
!if "$(TARGET_CPU)"!="PMAC"
build\$(CPUDIR)\*\_setargv.obj \
build\$(CPUDIR)\*\_wstargv.obj \
build\$(CPUDIR)\*\chkstk.obj \
build\$(CPUDIR)\*\crt0dat.obj \
build\$(CPUDIR)\*\crt0fp.obj \
build\$(CPUDIR)\*\crt0init.obj \
build\$(CPUDIR)\*\crt0msg.obj \
build\$(CPUDIR)\*\crtlib.obj \
build\$(CPUDIR)\*\mlock.obj \
build\$(CPUDIR)\*\stdargv.obj \
build\$(CPUDIR)\*\stdenvp.obj \
build\$(CPUDIR)\*\thread.obj \
build\$(CPUDIR)\*\threadex.obj \
build\$(CPUDIR)\*\tidtable.obj \
build\$(CPUDIR)\*\wild.obj \
build\$(CPUDIR)\*\wstdargv.obj \
build\$(CPUDIR)\*\wstdenvp.obj \
build\$(CPUDIR)\*\wwild.obj \
!endif
!if "$(TARGET_CPU)"=="i386"
build\$(CPUDIR)\*\fp8.obj \
!endif
build\$(CPUDIR)\*\convert.lib \
!if "$(TARGET_CPU)"!="PMAC"
build\$(CPUDIR)\*\direct.lib \
!endif
build\$(CPUDIR)\*\dos.lib \
build\$(CPUDIR)\*\eh.lib \
build\$(CPUDIR)\*\exec.lib \
build\$(CPUDIR)\*\heap.lib \
build\$(CPUDIR)\*\helper.lib \
build\$(CPUDIR)\*\lowio.lib \
build\$(CPUDIR)\*\mbstring.lib \
build\$(CPUDIR)\*\misc.lib \
!if "$(TARGET_CPU)"=="PMAC"
build\$(CPUDIR)\*\amsg.obj \
build\$(CPUDIR)\*\chkstk.obj \
build\$(CPUDIR)\*\crt0dat.obj \
build\$(CPUDIR)\*\crt0fp.obj \
build\$(CPUDIR)\*\crt0msg.obj \
build\$(CPUDIR)\*\crtexit.obj \
build\$(CPUDIR)\*\dllcrt0.obj \
build\$(CPUDIR)\*\dllmain.obj \
build\$(CPUDIR)\*\dllexit.obj \
build\$(CPUDIR)\*\init.obj \
build\$(CPUDIR)\*\libcinfo.obj \
build\$(CPUDIR)\*\qd.obj \
build\$(CPUDIR)\*\shellrtn.obj \
build\$(CPUDIR)\*\sp.obj \
!endif
build\$(CPUDIR)\*\stdio.lib \
build\$(CPUDIR)\*\string.lib \
build\$(CPUDIR)\*\time.lib \
build\$(CPUDIR)\*\conv.lib \
build\$(CPUDIR)\*\tran.lib
CPPSRC_OBJS_RAW_DLL = build\$(CPUDIR)\*\stdcpp.lib
IOSSRC_OBJS_RAW_DLL = build\$(CPUDIR)\*\iostream.lib
UPDATE_MSG = *** Updating Component Objects ***
#
# Define names for the primary targets of this makefile.
#
###############################################################################
!if "$(IFLAG)"==""
IFLAG=-i
!else
IFLAG=
!endif
!if "$(CRT_RELDIR)"==""
CRT_RELDIR = build
!endif
RELDIR_CPU=$(CRT_RELDIR)\$(CPUDIR)
DEFFILE_DIR=$(CPUDIR)
DEFFILE2_DIR=.
#
# Tools:
#
!if "$(VERBOSE)"!="1"
LINKER=link -nologo
LINKLIB=link -lib -nologo
!else
LINKER=link
LINKLIB=link -lib
!endif
!if "$(TARGET_CPU)"=="i386"
LINKER=$(LINKER) -filealign:4096
!endif
!if "$(TARGET_CPU)"!="PMAC"
COMMON_DEFS=-D_MBCS -D_MB_MAP_DIRECT -D_CRTBLD
!if "$(WINHEAP)" == "YES"
COMMON_DEFS=$(COMMON_DEFS) -DWINHEAP
!endif
!endif
!if "$(TARGET_CPU)"=="mips"
#
# NT headers require _MIPS_ to be defined for mips
#
COMMON_DEFS=$(COMMON_DEFS) -D_MIPS_
!endif
!if "$(TARGET_CPU)"=="PPC"
#
# NT headers require _PPC_ to be defined for PowerPC
#
COMMON_DEFS=$(COMMON_DEFS) -D_PPC_
!endif
!if "$(TARGET_CPU)"!="PMAC"
WINDOWS_H_DEFS=-DWIN32_LEAN_AND_MEAN -DNOSERVICE
CC_OPTS_BASE=-c -nologo -Zelp8 -W3 -WX -GFy -DWIN32
!if "$(TARGET_CPU)"=="ALPHA"
CC_OPTS_BASE=$(CC_OPTS_BASE) -Gy -Gi-
AS_OPTS=-nologo -Gy -D_WIN32 -DWIN32
!elseif "$(TARGET_CPU)"=="i386"
CC_OPTS_BASE=$(CC_OPTS_BASE) -GB -Gi-
AS_OPTS=-c -nologo -coff -Cx -Zm -DQUIET -D?QUIET -Di386 -D_WIN32 -DWIN32
!elseif "$(TARGET_CPU)"=="PPC"
AS_OPTS=
!else
CC_OPTS_BASE=$(CC_OPTS_BASE) -Gi-
AS_OPTS=-c -nologo -D_WIN32 -DWIN32
!endif
CC_OPTS=$(CC_OPTS_BASE) $(WINDOWS_H_DEFS)
!endif
!if "$(TARGET_CPU)"=="PMAC"
COMMON_DEFS=-D_MBCS -D_MB_MAP_DIRECT -D_CRTBLD
CC_OPTS_BASE=-c -nologo -W3 -WX -Zl
!if "$(TARGET_CPU)"=="PMAC"
CC_OPTS_BASE=$(CC_OPTS_BASE) -Zp2
AS_OPTS=-c -nologo
!else
AS_OPTS=
!endif
CC_OPTS=$(CC_OPTS_BASE)
!endif
ST_DEFINES=$(COMMON_DEFS)
STIOS_DEFINES=$(ST_DEFINES) -D_OLD_IOSTREAMS
MT_DEFINES=$(ST_DEFINES) -D_MT
MTIOS_DEFINES=$(MT_DEFINES) -D_OLD_IOSTREAMS
DLL_DEFINES=$(MT_DEFINES) -DCRTDLL
DLLCPP_DEFINES=$(MT_DEFINES) -D_DLL -DCRTDLL2
DLLIOS_DEFINES=$(MTIOS_DEFINES) -D_DLL -DCRTDLL1
RC_OPTS=-l 409 -r
RC_DEFS=$(COMMON_DEFS) $(WINDOWS_H_DEFS)
RC_INCS=-I$(V6TOOLS)\include
PDBDIR_CPU = $(RELDIR_CPU)
RELEASE_LIBCST = $(RELDIR_CPU)\libc.lib
RELEASE_LIBCPPST = $(RELDIR_CPU)\libcp.lib
RELEASE_LIBIOSST = $(RELDIR_CPU)\libci.lib
RELEASE_LIBCMT = $(RELDIR_CPU)\libcmt.lib
RELEASE_LIBCPPMT = $(RELDIR_CPU)\libcpmt.lib
RELEASE_LIBIOSMT = $(RELDIR_CPU)\libcimt.lib
RELEASE_DLL = $(RELDIR_CPU)\$(RETAIL_DLL_NAME).dll
RELEASE_DLLCPP = $(RELDIR_CPU)\$(RETAIL_DLLCPP_NAME).dll
RELEASE_DLLIOS = $(RELDIR_CPU)\$(RETAIL_DLLIOS_NAME).dll
RELEASE_IMPLIB_DLL = $(RELDIR_CPU)\$(RETAIL_LIB_NAME).lib
RELEASE_IMPLIB_DLLCPP = $(RELDIR_CPU)\$(RETAIL_LIBCPP_NAME).lib
RELEASE_IMPLIB_DLLIOS = $(RELDIR_CPU)\$(RETAIL_LIBIOS_NAME).lib
RELEASE_OLDNAMES = $(RELDIR_CPU)\oldnames.lib
RELEASE_LIBCST_PDB = $(PDBDIR_CPU)\libc.pdb
RELEASE_LIBCPPST_PDB = $(PDBDIR_CPU)\libcp.pdb
RELEASE_LIBIOSST_PDB = $(PDBDIR_CPU)\libci.pdb
RELEASE_LIBCMT_PDB = $(PDBDIR_CPU)\libcmt.pdb
RELEASE_LIBCPPMT_PDB = $(PDBDIR_CPU)\libcpmt.pdb
RELEASE_LIBIOSMT_PDB = $(PDBDIR_CPU)\libcimt.pdb
RELEASE_DLL_PDB = $(PDBDIR_CPU)\$(RETAIL_LIB_NAME).pdb
RELEASE_DLLCPP_PDB = $(PDBDIR_CPU)\$(RETAIL_LIBCPP_NAME).pdb
RELEASE_DLLIOS_PDB = $(PDBDIR_CPU)\$(RETAIL_LIBIOS_NAME).pdb
RELEASE_LIBCST_DBG = $(RELDIR_CPU)\libcd.lib
RELEASE_LIBCPPST_DBG = $(RELDIR_CPU)\libcpd.lib
RELEASE_LIBIOSST_DBG = $(RELDIR_CPU)\libcid.lib
RELEASE_LIBCMT_DBG = $(RELDIR_CPU)\libcmtd.lib
RELEASE_LIBCPPMT_DBG = $(RELDIR_CPU)\libcpmtd.lib
RELEASE_LIBIOSMT_DBG = $(RELDIR_CPU)\libcimtd.lib
RELEASE_DLL_DBG = $(RELDIR_CPU)\$(DEBUG_DLL_NAME).dll
RELEASE_DLLCPP_DBG = $(RELDIR_CPU)\$(DEBUG_DLLCPP_NAME).dll
RELEASE_DLLIOS_DBG = $(RELDIR_CPU)\$(DEBUG_DLLIOS_NAME).dll
RELEASE_IMPLIB_DLL_DBG = $(RELDIR_CPU)\$(DEBUG_LIB_NAME).lib
RELEASE_IMPLIB_DLLCPP_DBG = $(RELDIR_CPU)\$(DEBUG_LIBCPP_NAME).lib
RELEASE_IMPLIB_DLLIOS_DBG = $(RELDIR_CPU)\$(DEBUG_LIBIOS_NAME).lib
RELEASE_LIBCST_DBG_PDB = $(PDBDIR_CPU)\libcd.pdb
RELEASE_LIBCPPST_DBG_PDB = $(PDBDIR_CPU)\libcpd.pdb
RELEASE_LIBIOSST_DBG_PDB = $(PDBDIR_CPU)\libcid.pdb
RELEASE_LIBCMT_DBG_PDB = $(PDBDIR_CPU)\libcmtd.pdb
RELEASE_LIBCPPMT_DBG_PDB = $(PDBDIR_CPU)\libcpmtd.pdb
RELEASE_LIBIOSMT_DBG_PDB = $(PDBDIR_CPU)\libcimtd.pdb
RELEASE_IMPLIB_DBG_PDB = $(PDBDIR_CPU)\$(DEBUG_LIB_NAME).pdb
RELEASE_IMPLIBCPP_DBG_PDB = $(PDBDIR_CPU)\$(DEBUG_LIBCPP_NAME).pdb
RELEASE_IMPLIBIOS_DBG_PDB = $(PDBDIR_CPU)\$(DEBUG_LIBIOS_NAME).pdb
RELEASE_DLL_DBG_PDB = $(PDBDIR_CPU_DLL)\$(DEBUG_DLL_NAME).pdb
RELEASE_DLLCPP_DBG_PDB = $(PDBDIR_CPU_DLL)\$(DEBUG_DLLCPP_NAME).pdb
RELEASE_DLLIOS_DBG_PDB = $(PDBDIR_CPU_DLL)\$(DEBUG_DLLIOS_NAME).pdb
FD_REL_ST=-Fd$(RELEASE_LIBCST_PDB)
FD_REL_STP=-Fd$(RELEASE_LIBCPPST_PDB)
FD_REL_STI=-Fd$(RELEASE_LIBIOSST_PDB)
FD_REL_MT=-Fd$(RELEASE_LIBCMT_PDB)
FD_REL_MTP=-Fd$(RELEASE_LIBCPPMT_PDB)
FD_REL_MTI=-Fd$(RELEASE_LIBIOSMT_PDB)
FD_REL_DLL=-Fd$(RELEASE_DLL_PDB)
FD_REL_DLLP=-Fd$(RELEASE_DLLCPP_PDB)
FD_REL_DLLI=-Fd$(RELEASE_DLLIOS_PDB)
FD_REL_ST_DBG=-Fd$(RELEASE_LIBCST_DBG_PDB)
FD_REL_STP_DBG=-Fd$(RELEASE_LIBCPPST_DBG_PDB)
FD_REL_STI_DBG=-Fd$(RELEASE_LIBIOSST_DBG_PDB)
FD_REL_MT_DBG=-Fd$(RELEASE_LIBCMT_DBG_PDB)
FD_REL_MTP_DBG=-Fd$(RELEASE_LIBCPPMT_DBG_PDB)
FD_REL_MTI_DBG=-Fd$(RELEASE_LIBIOSMT_DBG_PDB)
FD_REL_DLL_DBG=-Fd$(RELEASE_IMPLIB_DBG_PDB)
FD_REL_DLLP_DBG=-Fd$(RELEASE_IMPLIBCPP_DBG_PDB)
FD_REL_DLLI_DBG=-Fd$(RELEASE_IMPLIBIOS_DBG_PDB)
#
# Locate the scratch location for object files of various flavors.
#
###############################################################################
OBJROOT = build
OBJDIR_PREFIX = #
OBJCPUDIR = $(OBJROOT)\$(CPUDIR)
OBJDIR_ST = $(OBJCPUDIR)\st_obj
!if "$(TARGET_CPU)"!="PMAC"
OBJDIR_MT = $(OBJCPUDIR)\mt_obj
!endif
OBJDIR_DLL = $(OBJCPUDIR)\dll_obj
OBJDIR_OLDNAMES = $(OBJDIR_ST)\oldnames
OBJDIR_TCMAP = $(OBJDIR_ST)\tcmap
OBJDIR_TCMAPDLL = $(OBJDIR_DLL)\tcmap
!if "$(TARGET_CPU)"!="PMAC"
OBJDIR_SDKNAMES = $(OBJDIR_DLL)\sdknames
!endif
OBJDIR_DLL_RAW = $(OBJCPUDIR)\*_obj
OBJDIR_ST_DBG = $(OBJCPUDIR)\xst_obj
!if "$(TARGET_CPU)"!="PMAC"
OBJDIR_MT_DBG = $(OBJCPUDIR)\xmt_obj
!endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -