Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

233 lines
6.4 KiB

# Microsoft Media Phone
# Common Targets Makefile
# common\cmntgt.mak
# Copyright 1995 Microsoft Corp.
# If INCLUDEd the following macros must be set for this file to work
# effictively
#
# Macro Description
#
# TARGETS A list of items that are to be deleted during a
# make clean_targets.
#
# SRCfiles A list of source files .c or .asm that will be used for
# generation of depends and tags files.
#
# Hfiles List of .h files for use in generation of depends
#
# INCfiles List of .inc files for use in generation of depends
#
# OBJfiles A list of object files that is are deleted during a make
# clean.
#
# DEFfile Def file to be used for linking.
#
# LIBname The name of the library to build, if used as a library
# make file
# Saved for later addition to StdHelp.
# cleanret -- deletes RETAIL objs, dlls, exes and implibs for $(TargetPlatform).
# cleandbg -- deletes DEBUG objs, dlls, exes and implibs for $(TargetPlatform).
# cleantst -- deletes TEST objs, dlls, exes and implibs for $(TargetPlatform).
# cleanbbt -- deletes BBT objs, dlls, exes and implibs for $(TargetPlatform).
# cleanall -- does all targets.
help:
-@type <<
Standard targets:
help -- Get this message (default target).
tgthelp -- Displays help for all bits of target information.
depends -- Makes depend files for all source code.
ret -- Does a retail build of the $(TargetPlatform) target.
tst -- NYI. Does a test build of $(TargetPlatform) target.
dbg -- Does a debug build of $(TargetPlatform) target.
bld_info -- Displays the current nmake variables.
nash_? -- Builds a retail (?=r) or debug (?=d) Nasville
clean_nash_? -- Cleans a retail (?=r) or debug (?=d) Nasville build
<<NOKEEP
tgthelp:
-@type <<
Target control variables:
os_t -- Target operating system, can be any of the following:
WIN95 Win95
nash Nashville
cpu_t -- Target CPU to compile for. Can be any of the following:
X86 Intel
ALPHA N/A. DEC Alpha RISC chip
MIPS N/A. MIPS R4000 RISC family
PPC N/A. IBM PowerPC RISC family
<<NOKEEP
bld_info:
-@type <<
NMAKE build control variables:
TargetPlatform: [$(TargetPlatform)]
os_t: [$(os_t)]
cpu_t: [$(cpu_t)]
os_h: [$(os_h)]
cpu_h: [$(cpu_h)]
NEWTOOLS_PATH: [$(NEWTOOLS_PATH)]
OBJDIR: [$(OBJDIR)]
ProjectRootPath:[$(ProjectRootPath)]
usingMFC: [$(usingMFC)]
usingMAPI: [$(usingMAPI)]
CC: [$(CC)]
CFLAGS: [$(CFLAGS)]
LocalCFLAGS: [$(LocalCFLAGS)]
CC_Defines: [$(CC_Defines)]
LINK: [$(LINK)]
LFLAGS: [$(LFLAGS)]
ASM: [$(ASM)]
AFLAGS: [$(AFLAGS)]
INCLUDE: [$(CIncludePaths)]
LIBRULES: [$(LIBRULES)]
<<NOKEEP
not_done:
-@type <<
Sorry, this feature is not completed at this time.
<<NOKEEP
restart: cleanall all
cleanall: cleanint cleantgt
cleanint:
-$(RM) $(OBJDIR)\*.obj $(OBJDIR)\*.lnk $(RESfile) > NUL
-$(RM) *.pch $(OBJDIR)\*.pch $(OBJDIR)\*.cod $(OBJDIR)\*.sbr $(OBJDIR)\*.bsc $(OBJDIR)\*.pdb $(OBJDIR)\*.ACM > NUL
-$(EXP) $(OBJDIR) > NUL
cleantgt:
-$(RM) $(TARGETS) $(OBJDIR)\*.map $(OBJDIR)\*.exp > NUL
-$(EXP) $(OBJDIR) > NUL
depends: dpndcore
## mkdep needs include directories $(CCmdIncPaths) in -Ifoo -Ibar form.
dpndcore: $(SRCfiles)
$(RM) -f depends.mak
-!$(INCLUDES) $(MKDEP_options) $** >> depends.mak
$(SED) -f $(ProjectRootPath)\common\depends.sed depends.mak > depends.new
$(MV) depends.new depends.mak
###
# A simple directory recursion tool...
###
relay:
cd $(DIR)
@set PATH=$(PATH)
$(MAKE) $(TARGET)
cd $(MAKEDIR)
################
##
## Main target (exe, dll) generation
##
################
###
# Generic library make file maintenance targets
###
# SRCfiles the source files that make up the library
# LIBOBJfiles the object files that make up the library
# LIBname the name of the library
##
#
!IFDEF LIBname
# Build a Library from the objects
# Well, this is a pain. The lib utill has a particular format which uses
# prefixed command of + - and combination if the like to control addition and
# replacement of objects in a library. There is not much we can do with
# prefixes for symbolic replacement, and without the command prefix of -+
# when the object is already a part of the library lib simply ignores the
# replacement object. So, rather then risk out of date library delete the
# library and rebuld from scratch. That way we don't need no stinking command
# prefixes.
COPYLIB=$(CP) $(LIBname) $(PROJlibpath)
$(LIBname): $(LIBOBJfiles)
-$(RM) $@ > NUL
$(LIBUTIL) @<<
/out:$@
$(**: = ^
)
<<NOKEEP
!endif
###
# Generic library make file maintenance targets
###
# Build a exe from list of objs. Depends on following variables
# OBJDIR = build directory
# OBJfiles = All objs to be linked
# LIBRARIES = standard libraries
# LocalLibraries = Local libraries
# LocalPreLibs = local libraries to be serached *before* standard libs
# LFLAGS = standard link options
# LocalLFLAGS = extra link options
# DEFFile = definition file
!IFDEF EXEname
!IF !DEFINED(BaseOpt) && "$(LibType)"=="dll"
BaseOpt=/BASE:@$(ProjectRootPath)\common\baseaddr.txt,$(@F)
!ENDIF
!ifdef DEFfile
LinkDef=/DEF:$(DEFfile)
!else
LinkDef=/DEF:$(@B).def
!endif
!if "$(LibType)"=="dll"
COPYLIB=$(CP) $*.lib $(PROJlibpath)
!endif
$(EXEname): $(OBJfiles) $(DEFfile) $(RESfile)
@if not exist $(PROJlibpath) mkdir $(PROJlibpath)
set PATH=$(STDCTOOLS_PATH)\bin;$(PATH)
set LIB=$(LIBRULES)
-@type <<$(OBJDIR)\response.lnk > NUL
$(LFLAGS) $(BaseOpt) $(LocalLFLAGS)
/OUT:$@
/MAP:$*.map
$(LinkDef)
$(STARTUPOBJ) $(DEBUGUTILOBJ)
$(OBJfiles:.obj=.obj^
)
$(RESfile)
$(LocalPreLibs) $(LIBRARIES) $(LocalLibraries)
<<KEEP
$(LINK) @$(OBJDIR)\response.lnk
-$(COPYLIB)
$(RM) $*.lib
# $(EXP)
!IF "$(SYMFILES)"=="ON"
-$(MAPSYM) -o $(OBJDIR)\$(@B).sym $(OBJDIR)\$(@B).map
!ENDIF
!ifdef BSCfile
$(BSCfile): $(OBJDIR)\*.sbr
$(BSCMAKE) /o $@ $(OBJDIR)\*.sbr
!ENDIF
!ENDIF # ifdef EXEname