C标准库源代码

源代码在线查看: makefile.sub

软件大小: 1707 K
上传用户: yl810406
关键词: 标准库 源代码
下载地址: 免注册下载 普通下载 VIP

相关代码

				####
				# makefile.sub - Subdirectory-specific makefile for new VCRT build process
				#
				#   Copyright (c) 1993-1997, Microsoft Corporation. All rights reserved.
				#
				# Purpose:
				#   This makefile builds the C++ runtimes for Multi-thread, Single-Thread
				#   and DLL.
				#
				#   This is a general-purpose makefile.  It is !INCLUDEd by the makefile
				#   in each subdirectory (hence the .SUB extension).  All subdirectory-
				#   specific make information should be embedded in the SOURCES file in
				#   that subdirectory, not in this file.
				#
				#   Change to the appropriate subdirectory and type NMAKE DEPEND to
				#   rebuild the dependencies.  These are stored in DEPEND.DEF in each
				#   subdirectory.
				#
				###############################################################################
				
				# Change this to BLD_ASM=1 if you have MASM 6.11a or later and wish
				# to re-build the assembler sources provided in this release.
				
				BLD_ASM=0
				
				#
				# Macro definitions:
				#
				###############################################################################
				
				#
				# Add .S suffix for assembler files on platforms other than x86
				#
				
				.SUFFIXES: .s
				
				#
				!if "$(BLD_DBG)" == "1"
				!if "$(PRE_BLD)" == "1"
				CFLAGS=-D_DEBUG -Od
				!else
				CFLAGS=-Zi -D_DEBUG -Od
				!endif
				!if "$(TARGET_CPU)"!="PPC"
				!if "$(PRE_BLD)" == "1"
				AFLAGS=-D_DEBUG
				!else
				AFLAGS=-Zi -D_DEBUG
				!endif
				!endif
				!else
				CFLAGS=-O1
				AFLAGS=
				!endif
				
				# Tool definitions:
				
				CC=cl
				LIB=link -lib -nologo
				!if "$(TARGET_CPU)"=="i386" || "$(TARGET_CPU)"=="PMAC"
				AS=ml
				!elseif "$(TARGET_CPU)"=="ALPHA"
				AS=asaxp -Ialpha
				!elseif "$(TARGET_CPU)"=="PPC"
				AS=pas
				!else
				AS=cl
				!endif
				
				#
				# Source file definitions:
				#
				###############################################################################
				
				A_INCLUDES=-I.
				C_INCLUDES=-I.
				!if	"$(TARGET_CPU)"=="PMAC"
				!if "$(POST_BLD)"=="1"
				C_INCLUDES=-I./mppc $(C_INCLUDES)
				!else
				C_INCLUDES=-I./mac $(C_INCLUDES)
				!endif
				!endif
				
				#
				# Inference rules:
				#
				# (Due to the kind of dependencies used below, we must explicitly define
				# inference rules to effect construction of the object files.)
				#
				###############################################################################
				
				!if	"$(TARGET_CPU)"=="PMAC"
				CFLAGS=$(CFLAGS) -Zp2 -DB_END
				!endif
				CXXFLAGS=$(CFLAGS) -GR -GX -d1Binl
				!if "$(UNWINDTAB)"=="1"
				!if	"$(TARGET_CPU)"=="PMAC" && "$(DIR)"=="eh"
				CXXFLAGS=$(CXXFLAGS) -d2unwindtab
				!endif
				!endif
				
				!if "$(POST_BLD)"!="1"
				CXXFLAGS=$(CXXFLAGS) -Istdhpp
				!endif
				
				
				#
				# Rules for end-user source build
				#
				#
				# LSOURCES will override A_INCLUDES and C_INCLUDES for conv/ and tran/ subdirs.
				#
				###############################################################################
				
				!if "$(POST_BLD)"=="1"
				!INCLUDE makefile.inc
				!else
				!INCLUDE lsources.
				!endif
				
				!if "$(TARGET_CPU)"!="PMAC"
				
				.c{$(OBJDIR)}.obj:
				    $(CC) $(CFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				!if "$(TARGET_CPU)"=="ALPHA"
				
				{alpha}.c{$(OBJDIR)}.obj:
				    $(CC) $(CFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				!elseif "$(TARGET_CPU)"=="i386"
				
				{intel}.c{$(OBJDIR)}.obj:
				    $(CC) $(CFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				!elseif "$(TARGET_CPU)"=="mips"
				
				{mips}.c{$(OBJDIR)}.obj:
				    $(CC) $(CFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				!elseif "$(TARGET_CPU)"=="PPC"
				
				{ppc}.c{$(OBJDIR)}.obj:
				    $(CC) $(CFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				!endif
				
				.cpp{$(OBJDIR)}.obj:
				    $(CC) $(CXXFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				!if "$(TARGET_CPU)"=="ALPHA"
				
				{alpha}.cpp{$(OBJDIR)}.obj:
				    $(CC) $(CXXFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				{alpha}.s{$(OBJDIR)}.obj:
				    $(AS) $(AFLAGS) $(A_INCLUDES) -Fo $@ $<
				
				!elseif "$(TARGET_CPU)"=="i386"
				
				{intel}.cpp{$(OBJDIR)}.obj:
				    $(CC) $(CXXFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				!IF $(BLD_ASM)==1
				
				{intel}.asm{$(OBJDIR)}.obj:
				    $(AS) $(AFLAGS) $(A_INCLUDES) -Fo$(OBJDIR)\ $<
				
				!ENDIF
				
				!elseif "$(TARGET_CPU)"=="mips"
				
				{mips}.cpp{$(OBJDIR)}.obj:
				    $(CC) $(CXXFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				{mips}.s{$(OBJDIR)}.obj:
				    $(CC) $(CFLAGS) /QMmips3 $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				!elseif "$(TARGET_CPU)"=="PPC"
				
				{ppc}.cpp{$(OBJDIR)}.obj:
				    $(CC) $(CXXFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				{ppc}.s{$(OBJDIR)}.obj:
				    $(CC) -E $(CFLAGS) $(A_INCLUDES) $< > $(OBJDIR)\$(				    $(AS) $(AFLAGS) -o $@ $(OBJDIR)\$(				    del $(OBJDIR)\$(				
				!endif
				
				!else
				!if "$(POST_BLD)"=="1"
				
				.c{$(OBJDIR)}.obj:
				    $(CC) $(CFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				{mppc}.c{$(OBJDIR)}.obj:
				    $(CC) $(CFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				.cpp{$(OBJDIR)}.obj:
				    $(CC) $(CXXFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				{mppc}.cpp{$(OBJDIR)}.obj:
				    $(CC) $(CXXFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $<
				
				{mppc}.asm{$(OBJDIR)}.obj:
				    $(AS) $(AFLAGS) $(A_INCLUDES) -Fo$(OBJDIR)\ $<
				
				!else
				SRCDIR =.
				CFILES = $<
				CXXFILES = $<
				AFILES = $<
				
				SRCPATH = {$(SRCDIR)\$(SRCOS)\$(TARGET_CPU);$(SRCDIR)\$(SRCOS);$(SRCDIR)}
				
				# source dir
				
				{$(SRCDIR)}.cpp{$(OBJDIR)}.obj:
					$(CC) $(CXXFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $(CXXFILES)
				
				{$(SRCDIR)}.c{$(OBJDIR)}.obj:
					$(CC) $(CFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $(CFILES)
				
				# os
				
				{$(SRCDIR)\$(OS)}.cpp{$(OBJDIR)}.obj:
					$(CC) $(CXXFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $(CXXFILES)
				
				{$(SRCDIR)\$(OS)}.c{$(OBJDIR)}.obj:
					$(CC) $(CFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $(CFILES)
				
				# os\cpu
				
				{$(SRCDIR)\$(OS)\$(TARGET_CPU)}.cpp{$(OBJDIR)}.obj:
					$(CC) $(CXXFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $(CXXFILES)
				
				{$(SRCDIR)\$(OS)\$(TARGET_CPU)}.c{$(OBJDIR)}.obj:
					$(CC) $(CFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $(CFILES)
				
				{$(SRCDIR)\$(OS)\$(TARGET_CPU)}.asm{$(OBJDIR)}.obj:
					$(AS) $(AFLAGS) -Fo$(OBJDIR)\ $(AFILES)
				
				{$(SRCDIR)\$(OS)\$(TARGET_CPU)}.a{$(OBJDIR)}.obj:
					$(CPP) $(CPPFLAGS) $(CPPFILES)
					$(AAS) $(AAFLAGS) -Fo$(OBJDIR)\ $(AAFILES)
					-del $(AAFILES) 2>nul
				!endif
				!endif
				
				#
				# Dependencies:
				#
				# NOTE: The inference rules cause the targets to actually be built; no
				# commands are necessary below.
				#
				###############################################################################
				
				$(OBJDIR)\$(CURDIR).lib: $(OBJS) $(OBJS_NOT_IN_LIB) $(OBJDIR)\$(CURDIR).rsp
				!if "$(BLD_MODEL)"=="zdll" && "$(TARGET_CPU)"=="i386"
				    sed -f %CRT_BUILDDIR%\crt\prebuild\tools\win32\newline.sed $(OBJDIR)\$(CURDIR).rsp | sed -f %CRT_BUILDDIR%\crt\prebuild\tools\win32\delblank.sed >> temp.lst
				    for /F %i in (temp.lst) do %CRT_BUILDDIR%\crt\prebuild\libw32\tools\intel\whackline %i
				    del temp.lst
				!endif
				    $(LIB) -out:$@ @$(OBJDIR)\$(CURDIR).rsp
				
				
				$(OBJDIR)\$(CURDIR).rsp: lsources
				    @echo Creating response file: 				$(OBJS)
								
				
				!IF EXIST(special.mak)
				!    INCLUDE special.mak    # Include special makefile additions, if any
				!ENDIF
				
				!IF EXIST(depend.def)
				!    INCLUDE depend.def     # Include dependencies on .h files
				!ENDIF
				
				#
							

相关资源