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

📄 makefile

📁 C标准库源代码,能提高对C的理解,不错的哦
💻
📖 第 1 页 / 共 5 页
字号:
####
# 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 + -