#### # makefile.sub - Subdirectory-specific makefile for new VCRT build process # # Copyright (c) 1993-1994, 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. # ############################################################################### # STRIPLIN=2 ## 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 # STRIPLIN=0 BLD_ASM=1 # STRIPLIN=1 # # Macro definitions: # ############################################################################### # # Add .S suffix for assembler files on platforms other than x86 # .SUFFIXES: .s # # STRIPLIN=0 # BLD_PUMA implies !BLD_DBG # # STRIPLIN=1 !if "$(BLD_DBG)" == "1" CFLAGS=-Zi -D_DEBUG -Od # STRIPLIN=0 !if "$(TARGET_CPU)"=="ALPHA" CFLAGS=$(CFLAGS) -QAl !endif # STRIPLIN=1 !if "$(TARGET_CPU)"!="PPC" AFLAGS=-Zi -D_DEBUG !endif !else CFLAGS=-O2 AFLAGS= # STRIPLIN=0 !if "$(BLD_PUMA)" == "1" CFLAGS=$(CFLAGS) -Zi !if "$(TARGET_CPU)"=="ALPHA" && "$(BLD_PUMA)" == "1" CFLAGS=$(CFLAGS) -QAl !endif !if "$(TARGET_CPU)"!="PPC" AFLAGS=$(AFLAGS) -Zi !endif !endif # STRIPLIN=1 !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../h -I. C_INCLUDES=-I../h !if "$(TARGET_CPU)"=="PMAC" !if "$(POST_BLD)"=="1" C_INCLUDES=-I../h/mppc $(C_INCLUDES) !else C_INCLUDES=-I../h/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 # # 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" {i386}.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" {i386}.cpp{$(OBJDIR)}.obj: $(CC) $(CXXFLAGS) $(C_INCLUDES) -Fo$(OBJDIR)\ $< !IF $(BLD_ASM)==1 {i386}.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)\$(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 $(LIB) -out:$@ @$(OBJDIR)\$(CURDIR).rsp $(OBJDIR)\$(CURDIR).rsp: lsources @echo Creating response file: <<$(OBJDIR)\$(CURDIR).rsp $(OBJS) <