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.
|
|
#
# 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
|