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.
 
 
 
 
 
 

206 lines
5.8 KiB

#
# Example of user compile flags:
# nmake UserCompileFlags="/D AUTOMATED" /f makefile.nmk
#
##########################################################################
# #
# Check for proper defines prior to execution #
# #
##########################################################################
!IFNDEF Project
!ERROR Must specify Project name
!ENDIF
!IFNDEF ProjectType
!ERROR Must specify ProjectType name
!ENDIF
!IFNDEF Libraries
!ERROR Must specify Libraries to link with.
!endif
!IFNDEF Objects
!ERROR Object list must be defined
!ENDIF
!IFNDEF BinDirectory
BinDirectory = ..\bin
!ENDIF
!IFNDEF LibDirectory
LibDirectory = ..\lib
!ENDIF
!IFNDEF IncDirectory
IncDirectory = ..\inc
!ENDIF
!IF "$(DESTDIR)" == ""
DESTDIR = .
!ENDIF
##########################################################################
# #
# Setup machine type #
# #
##########################################################################
!IF "$(CPU)" == "i386"
Machine = ix86
!ENDIF
!IF "$(CPU)" == "MIPS"
Machine = MIPS
!ENDIF
!IF "$(CPU)" == "ALPHA"
Machine = ALPHA
!ENDIF
!IF "$(CPU)" == "PPC"
Machine = PPC
!ENDIF
##########################################################################
# #
# Setup compile/link flags #
# #
##########################################################################
INCLUDE=$(MANROOT)\debug\$(Build)\inc;$(MANROOT)\test\$(Build)\inc;$(INCLUDE);$(MSDEVDIR)\include;$(MSDEVDIR)\mfc\include
PATH=$(MANROOT)\debug\$(Build)\bin;$(MANROOT)\test\$(Build)\bin;$(PATH)
LIB=$(MANROOT)\debug\$(Build)\lib;$(MANROOT)\test\$(Build)\lib;$(LIB)
############## LOR Stuff ###################
!IFDEF LOR
LORCompile = /D LOR /D AUTOMATED /FAsc /Fa"$(DESTDIR)/"
LORLink = /map:"$(DESTDIR)/$(Project).map"
LORCopy = copy $(DESTDIR)\*.map $(BinDirectory)
!ELSE
LORCompile = /FR"$(DESTDIR)/"
LORLink =
LORCopy =
!ENDIF
############## COD and Map files ###################
!IFDEF SYMBOLS
LORCompile = /FAsc /Fa"$(DESTDIR)/"
LORLink = /map:"$(DESTDIR)/$(Project).map"
LORCopy = copy $(DESTDIR)\*.map $(BinDirectory)
!ENDIF
!IF "$(ProjectType)" == "DLL"
LinkType = /DLL
!ELSE
LinkType =
!ENDIF
!IF "$(Build)" == "DEBUG"
OptimizeFlag = /D"_DEBUG" /Od /Zi /Zp8 /MLd
DebugLinkFlag = /DEBUG /DEBUGTYPE:BOTH
!ELSE
OptimizeFlag = /Ox /Zp8
!ENDIF
CompilerDest = /Fo"$(DESTDIR)/" /Fd"$(DESTDIR)/$(Project).pdb"
############## DEF file ###################
!IFDEF DEFFILE
DEF_OPTIONS = /DEF:$(DEFFILE)
!ENDIF
##########################################################################
# #
# Build the file. #
# #
##########################################################################
all: "$(DESTDIR)" $(DESTDIR)\$(Project).$(ProjectType)
"$(DESTDIR)" :
if not exist "$(DESTDIR)/$(NULL)" mkdir "$(DESTDIR)"
!include <win32.mak>
.rc{$(DESTDIR)}.res:
$(rc) $(rcflags) $(rcvars) /fo $*.res $<
.cpp{$(DESTDIR)}.obj:
$(cc) $(cflags) $(OptimizeFlag) $(UserCompileFlags) $(LORCompile) $(ExeFlag) $(cvars) $(CompilerDest) /GX $<
.cxx{$(DESTDIR)}.obj:
$(cc) $(cflags) $(OptimizeFlag) $(UserCompileFlags) $(LORCompile) $(ExeFlag) $(cvars) $(CompilerDest) $<
.c{$(DESTDIR)}.obj:
$(cc) $(cflags) $(OptimizeFlag) $(UserCompileFlags) $(LORCompile) $(ExeFlag) $(cvars) $(CompilerDest) $<
!if "$(ProjectType)"=="LIB"
$(DESTDIR)\$(Project).$(ProjectType): $(Objects)
lib $(linkflags) $(Objects) $(Libraries) $(UserLibFlags) /out:$(DESTDIR)\$(Project).$(ProjectType) $(MapSettings)
!else
$(DESTDIR)\$(Project).$(ProjectType): $(Objects)
$(link) $(LORLink) $(LinkType) $(DebugLinkFlag) $(linkflags) $(UserLinkFlags) $(Objects) $(Libraries) $(DEF_OPTIONS) -out:$(DESTDIR)\$(Project).$(ProjectType) $(MapSettings)
!endif
!IF "$(ProjectType)" == "DLL"
copy $(DESTDIR)\*.lib $(LibDirectory)
copy $(DESTDIR)\*.dll $(BinDirectory)
!ELSEIF "$(ProjectType)" == "LIB"
copy $(DESTDIR)\*.lib $(LibDirectory)
!ELSEIF "$(ProjectType)" == "EXE"
copy $(DESTDIR)\*.exe $(BinDirectory)
!ENDIF
!IF "$(Build)" == "DEBUG"
copy $(DESTDIR)\*.pdb $(BinDirectory)
copy $(DESTDIR)\*.pdb $(LibDirectory)
!ENDIF
!IFDEF SYMBOLS
copy $(DESTDIR)\*.map $(BinDirectory)
copy $(DESTDIR)\*.cod $(BinDirectory)
copy $(DESTDIR)\*.sym $(BinDirectory)
copy $(DESTDIR)\*.pdb $(BinDirectory)
!ENDIF
copy *.h $(IncDirectory)
$(LORCopy)
clean:
erase $(DESTDIR)\*.obj >nul
erase $(DESTDIR)\*.cod >nul
erase $(DESTDIR)\*.map >nul
erase $(DESTDIR)\*.sym >nul
erase $(DESTDIR)\*.pdb >nul
erase $(DESTDIR)\*.exe >nul
erase $(DESTDIR)\*.lib >nul
erase $(DESTDIR)\*.dll >nul
erase $(DESTDIR)\*.exp >nul
erase $(DESTDIR)\*.res >nul
erase $(DESTDIR)\*.aps >nul
promoteh:
copy *.h $(IncDirectory) >nul
promotebin:
copy $(DESTDIR)\*.dll $(BinDirectory) >nul
copy $(DESTDIR)\*.exe $(BinDirectory) >nul
copy $(DESTDIR)\*.lib $(LibDirectory) >nul
promoteall:
copy $(DESTDIR)\*.dll $(BinDirectory) >nul
copy $(DESTDIR)\*.exe $(BinDirectory) >nul
copy $(DESTDIR)\*.lib $(LibDirectory) >nul
copy *.h $(IncDirectory) >nul