Make.Inc
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:11k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #----------------------------------------------------------------------------
  2. #
  3. # Descriptions:
  4. #   Generic Make File Header for EDK
  5. #
  6. # Copyright:
  7. #   Copyright (C) Microsoft Corp. 1993-1999.  All Rights Reserved.
  8. #
  9. #----------------------------------------------------------------------------
  10. #*********************************************
  11. # Check Component Name
  12. #*********************************************
  13. !ifndef COMP
  14. !     ERROR Component name (COMP) has not been defined.
  15. !endif
  16. #*********************************************
  17. # Parameter Defaults
  18. #*********************************************
  19. !ifndef BKOFFICE
  20. BKOFFICE=c:BkOffice
  21. !endif
  22. !if [DIR $(BKOFFICE) >NUL] != 0
  23. !   ERROR Cannot find project root at $(BKOFFICE), set BKOFFICE variable
  24. !endif
  25. !ifndef INCLUDE
  26. !   ERROR INCLUDE variable is empty; must include at least system include directory
  27. !endif
  28. !ifndef LIB
  29. !   ERROR LIB variable is empty; must include at least system lib directory
  30. !endif
  31. !ifndef BLDTYPE
  32. BLDTYPE=DBG
  33. !endif
  34. !ifndef CALL
  35. CALL=C
  36. !endif
  37. !ifndef PACK
  38. PACK=YES
  39. !endif
  40. !ifndef OUTERR
  41. OUTERR=NO
  42. !endif
  43. !ifndef WARNING_LEVEL
  44. WARNING_LEVEL=3
  45. !endif
  46. OSTARG=NTx86
  47. OSTAG=WIN32
  48. WINTAG=32
  49. CPUTARG=IX86
  50. #*********************************************
  51. # Tools
  52. #*********************************************
  53. MAKEEXE = nmake
  54. IMPLIB  = implib
  55. CC      = cl
  56. LIBU    = lib
  57. LINK    = link
  58. RC      = rc
  59. MC      = mc
  60. HC      = hc
  61. #*********************************************
  62. #
  63. # Directories
  64. #
  65. # DIRINC   - project level include
  66. # DIRBIN   - project level executables
  67. # DIRLIB   - project level libraries
  68. # DIRMAKE  - project makefiles
  69. #
  70. # DIRSRC   - component source directory
  71. # DIRH     - component headers
  72. # DIRRES   - component resources
  73. # DIRBLD   - component build directory
  74. # DIRPCHSRC- Pre-compiled header source directory
  75. # DIRPCH   - Pre-compiled header output directory
  76. #
  77. #*********************************************
  78. # Project directories
  79. DIRINC=$(BKOFFICE)include
  80. DIRLIB=$(BKOFFICE)lib
  81. DIRBIN=$(BKOFFICE)bin
  82. DIRMAKE=$(BKOFFICE)include
  83. # Component directories
  84. DIRBLD=.
  85. DIRSRC=.
  86. DIRH=.;$(DIRBLD)
  87. DIRRES=.
  88. # Pre-compiled header directories
  89. DIRPCHSRC=$(BKOFFICE)SamplesExchangeToolsPreCompH
  90. DIRPCH=$(BKOFFICE)SamplesExchangeToolsPreCompH
  91. #*********************************************
  92. # Paths
  93. #*********************************************
  94. PATH    = $(DIRBIN);$(PATH)
  95. LIB     = $(DIRLIB);$(LIB)
  96. INCLUDE = $(DIRH);$(DIRINC);$(INCLUDE)
  97. #*********************************************
  98. # Output Redirection
  99. #*********************************************
  100. !if "$(OUTERR)" == "NO"
  101. ERRFILE=
  102. OSYM=
  103. !else
  104. ERRFILE=$(DIRBLD)$(COMP).err
  105. OSYM= >>
  106. !endif
  107. #*********************************************
  108. # Basic Compile Flags
  109. #*********************************************
  110. # CL is for all C and C++ files
  111. CL= -I. -c -G3s -MT -W$(WARNING_LEVEL) -WX -J -Zp -Fo$(DIRBLD)^ -nologo $(CL)
  112. # NT/CPU specific flags
  113. CL= -DWIN32 -D_X86_ $(CL)
  114. # CFLAGS is for C files
  115. #CFLAGS=$(CFLAGS)
  116. # CPPFLAGS is for C++ files
  117. #CPPFLAGS=$(CPPFLAGS)
  118. # LFLAGS is for linking
  119. LFLAGS=/NOD /NOLOGO -machine:$(CPUTARG) -out:$@ $(LFLAGS)
  120. # DLLFLAGS is for linking DLLs
  121. DLLFLAGS=$(LFLAGS) -dll -def:$(@B).def -map:$(DIRBLD)$(COMP).map $(DLLFLAGS)
  122. # LIBFLAGS is for building libraries
  123. LIBFLAGS=-nologo -machine:$(CPUTARG) -out:$@ $(LIBFLAGS)
  124. # RFLAGS is for Windows resources
  125. RFLAGS=/r -I$(DIRRES) -fo$@ $(RFLAGS)
  126. # MFLAGS is for the message compiler
  127. MFLAGS=-v -s -h $(DIRBLD) -r $(DIRBLD) -x $(DIRBLD) $(MFLAGS)
  128. # MRFLAGS is for the resource compiler when used after the message compiler
  129. MRFLAGS=-l 409 -r -x -i$(DIRBLD) $(MRFLAGS)
  130. #*********************************************
  131. # Pre-compiled header macros
  132. # NOPCH     - Define this to disable use and creation of precompiled headers.
  133. # PCHUSE    - The default pre-compiled header for .C source files.
  134. # PCUSECPP  - The default pre-compiled header for .CPP source files.
  135. #
  136. # PCHCR1    - To create the PCH file most .C sources depend upon.   (edk.h)
  137. # PCHUSE1   - To use the PCH file most .C sources depend upon.      (edk.h)
  138. # PCHCR2    - To create the PCH file most .CPP sources depend upon. (edk.h)
  139. # PCHUSE2   - To use the PCH file most .CPP sources depend upon.    (edk.h)
  140. # PCHCR3    - To create MFC PCH.                                 (edkafx.h)
  141. # PCHUSE3   - To use MFC PCH.                                    (edkafx.h)
  142. # PCHCR4    - To create the UNICODE PCH file for .C sources.        (edk.h)
  143. # PCHUSE4   - To use the UNICODE PCH file for .C sources.           (edk.h)
  144. #*********************************************
  145. !ifndef NOPCH
  146. # We are using precompiled headers.
  147. PCHCR1  =  /Fp$(DIRPCH)edk.pch    /Yc"edk.h"    -Fo$(DIRPCH) /Yd
  148. PCHUSE1 =  /Fp$(DIRPCH)edk.pch    /Yu"edk.h"
  149. PCHCR2  =  /Fp$(DIRPCH)edkx.pch   /Yc"edk.h"    -Fo$(DIRPCH) /Yd
  150. PCHUSE2 =  /Fp$(DIRPCH)edkx.pch   /Yu"edk.h"
  151. PCHCR3  =  /Fp$(DIRPCH)edkafx.pch /Yc"edkafx.h" -Fo$(DIRPCH) /Yd
  152. PCHUSE3 =  /Fp$(DIRPCH)edkafx.pch /Yu"edkafx.h"
  153. PCHCR4  =  /Fp$(DIRPCH)edku.pch   /Yc"edk.h"    -Fo$(DIRPCH) /Yd
  154. PCHUSE4 =  /Fp$(DIRPCH)edku.pch   /Yu"edk.h"
  155. # Overide this to change the default pre-compiled header.
  156. # You can also blank this if not using pre-compiled headers.
  157. !ifndef PCHUSE
  158. PCHUSE=$(PCHUSE1)
  159. !endif
  160. !ifndef PCHUSECPP
  161. PCHUSECPP=$(PCHUSE2)
  162. !endif
  163. PCHOBJ1 = $(DIRPCH)edk.obj
  164. PCHOBJ2 = $(DIRPCH)edkx.obj
  165. PCHOBJ3 = $(DIRPCH)edkafx.obj
  166. PCHOBJ4 = $(DIRPCH)edku.obj
  167. !else
  168. # NOT using precompiled headers.
  169. !include "nopch.inc"
  170. !endif
  171. #*********************************************
  172. # Calling convention Flag
  173. #*********************************************
  174. # Pascal Calling convention
  175. !if "$(CALL)"=="PASCAL"
  176. CL=-Gc $(CL)
  177. !endif
  178. #*********************************************
  179. # Function Packaging Flag
  180. #*********************************************
  181. # Function packaging flag
  182. !if "$(PACK)" == "YES"
  183. CL=-Gy $(CL)
  184. !endif
  185. #*********************************************
  186. # Optimization Flags
  187. #*********************************************
  188. !if "$(BLDTYPE)"=="SHP"
  189. CL=-Ob1 -Og -Os $(CL)
  190. !endif
  191. !if "$(BLDTYPE)"=="DBG"
  192. CL=-Od -Z7 $(CL)
  193. !endif
  194. !if "$(BLDTYPE)"=="TST"
  195. CL=-Ob1 -Og -Os $(CL)
  196. !endif
  197. #*********************************************
  198. # Build Type Flags
  199. #*********************************************
  200. !if "$(BLDTYPE)"=="SHP"
  201. CL=-DSHIP $(CL)
  202. LFLAGS=-debug:none -nodefaultlib:libc $(LFLAGS)
  203. !endif
  204. !if "$(BLDTYPE)"=="DBG"
  205. CL=-DDEBUG -DTEST $(CL) 
  206. LFLAGS=-debug:full -debugtype:cv -nodefaultlib:libc -incremental:no -pdb:none $(LFLAGS) 
  207. !endif
  208. !if "$(BLDTYPE)"=="TST"
  209. CL=-DTEST $(CL)
  210. LFLAGS=-debug:none  -nodefaultlib:libc $(LFLAGS)
  211. !endif
  212. #*********************************************
  213. # Default Libraries
  214. #*********************************************
  215. # C Libraries 
  216. CLIBS =  libcmt.lib 
  217.          oldnames.lib
  218. # NT Libraries
  219. NTLIBS = kernel32.lib 
  220.          user32.lib   
  221.          shell32.lib  
  222.          gdi32.lib    
  223.          ole32.lib    
  224.          uuid.lib     
  225.          winspool.lib 
  226.          comdlg32.lib 
  227.          advapi32.lib 
  228.          netapi32.lib 
  229.          imagehlp.lib 
  230.          wsock32.lib  
  231.          rpcdce4.lib  
  232.          rpcndr.lib   
  233.          rpcns4.lib   
  234.          rpcrt4.lib
  235.         
  236. # MAPI Libraries
  237. MAPILIBS = MAPI32.LIB
  238. # Library List
  239. # Components should either add to this list with a line like:
  240. #      LIBLIST = $(LIBLIST) mylibs
  241. # or, if they don't need all the default libs, (e.g. if don't need MAPI):
  242. #      LIBLIST = $(CLIBS) $(NTLIBS) mylibs
  243. LIBLIST = $(LIBLIST) $(CLIBS) $(NTLIBS) $(MAPILIBS)
  244. # Objects
  245. # This is just a default setting, expect most make files to 
  246. # overide this (i.e. if they have more than one object or their
  247. # one object is not named $(COMP).obj
  248. !ifndef OBJLIST
  249. OBJLIST=$(DIRBLD)$(@B).OBJ
  250. !endif
  251. #*********************************************
  252. # Inference Rules
  253. #*********************************************
  254. # C Targets
  255. {$(DIRSRC)}.c{$(DIRBLD)}.obj:
  256. !if "$(OUTERR)"=="YES"
  257.     @echo $(CC) $(CL) $(PCHUSE) $(CFLAGS) $< $(OSYM) $(ERRFILE)
  258. !endif
  259.     $(CC) $(CL) $(PCHUSE) $(CFLAGS) $< $(OSYM) $(ERRFILE)
  260. # C++ Targets
  261. {$(DIRSRC)}.cpp{$(DIRBLD)}.obj:
  262. !if "$(OUTERR)"=="YES"
  263.     @echo $(CC) $(CL) $(PCHUSECPP) $(CPPFLAGS) $< $(OSYM) $(ERRFILE)
  264. !endif
  265.     $(CC) $(CL) $(PCHUSECPP) $(CPPFLAGS) $< $(OSYM) $(ERRFILE)
  266. # Resource Targets from .RC files
  267. {$(DIRRES)}.rc{$(DIRBLD)}.res:
  268. !if "$(OUTERR)"=="YES"
  269.     @echo $(RC) $(RFLAGS) $(DIRRES)$(@B).rc $(OSYM) $(ERRFILE)
  270. !endif
  271.     $(RC) $(RFLAGS) $(DIRRES)$(@B).rc $(OSYM) $(ERRFILE)
  272. # Resource Targets from .MC files
  273. .SUFFIXES: .mc
  274. {$(DIRSRC)}.mc{$(DIRBLD)}.res:
  275. !if "$(OUTERR)"=="YES"
  276.     @echo $(MC) $(MFLAGS) $< $(OSYM) $(ERRFILE)
  277. !endif
  278.     $(MC) $(MFLAGS) $< $(OSYM) $(ERRFILE)
  279. !if "$(OUTERR)"=="YES"
  280.     @echo $(RC) $(MRFLAGS) -fo$(DIRBLD)$(@B).res $(DIRBLD)$(@B).rc $(OSYM) $(ERRFILE)
  281. !endif
  282.     $(RC) $(MRFLAGS) -fo$(DIRBLD)$(@B).res $(DIRBLD)$(@B).rc $(OSYM) $(ERRFILE)
  283. !if "$(OUTERR)"=="YES"
  284.     @echo del $(DIRBLD)$(@B).rc $(OSYM) $(ERRFILE)
  285. !endif
  286.         del $(DIRBLD)$(@B).rc $(OSYM) $(ERRFILE)
  287. # Import Libraries
  288. {$(DIRSRC)}.def{$(DIRBLD)}.lib:
  289. !if "$(OUTERR)"=="YES"
  290.     @echo $(IMPLIB) -DEF:$(@B).DEF -OUT:$@ $(OSYM) $(ERRFILE)
  291. !endif
  292.     @echo $(IMPLIB) -DEF:$(@B).DEF -OUT:$@ $(OSYM) $(ERRFILE)
  293.     xcopy $@ $(DIRLIB) $(OSYM) $(ERRFILE)
  294. # Static Libraries
  295. {$(DIRBLD)}.obj{$(DIRBLD)}.lib:
  296. !if "$(OUTERR)"=="YES"
  297.     @echo $(LIBU) $(LIBFLAGS) $** $(OSYM) $(ERRFILE)
  298. !endif
  299.     $(LIBU) $(LIBFLAGS) $** $(OSYM) $(ERRFILE)
  300.     xcopy $@ $(DIRLIB) $(OSYM) $(ERRFILE)
  301. # DLLs
  302. {$(DIRBLD)}.obj{$(DIRBLD)}.dll:
  303.     @echo $** > $(DIRBLD)objfiles.lst
  304.     @echo $(LIBLIST) > $(DIRBLD)libfiles.lst
  305. !if "$(OUTERR)"=="YES"
  306.     @echo   $(LINK) $(DLLFLAGS) @$(DIRBLD)objfiles.lst @$(DIRBLD)libfiles.lst $(OSYM) $(ERRFILE)
  307. !endif
  308.     $(LINK) $(DLLFLAGS) @$(DIRBLD)objfiles.lst @$(DIRBLD)libfiles.lst $(OSYM) $(ERRFILE)
  309. !if "$(OUTERR)"=="YES"
  310.     @echo xcopy $(DIRBLD)$(@B).lib $(DIRLIB) $(OSYM) $(ERRFILE)
  311. !endif
  312.     -xcopy $(DIRBLD)$(@B).lib $(DIRLIB) $(OSYM) $(ERRFILE)
  313. # EXEs
  314. {$(DIRBLD)}.obj{$(DIRBLD)}.exe:
  315.     @echo $(OBJLIST) > $(DIRBLD)objfiles.lst
  316.     @echo $(LIBLIST) > $(DIRBLD)libfiles.lst
  317. !if "$(OUTERR)"=="YES"
  318.     @echo   $(LINK) $(LFLAGS) @$(DIRBLD)objfiles.lst @$(DIRBLD)libfiles.lst $(OSYM) $(ERRFILE)
  319. !endif
  320.     $(LINK) $(LFLAGS) @$(DIRBLD)objfiles.lst @$(DIRBLD)libfiles.lst $(OSYM) $(ERRFILE)
  321. #*********************************************
  322. # Define the post-include file
  323. #*********************************************
  324. #ifndef POSTINCL
  325. POSTINCL=$(BKOFFICE)Includepostmake.inc
  326. #endif