make.rules
上传用户:xqtpzdz
上传日期:2022-05-21
资源大小:1764k
文件大小:10k
源码类别:

xml/soap/webservice

开发平台:

Visual C++

  1. # PRODUCT_DOC
  2. #
  3. # Copyright 2004 Vocalocity, Inc. All Rights Reserved.
  4. #
  5. # Make rules that are common to all NT make files
  6. #
  7. # Used by: all NT make files
  8. #
  9. #
  10. !if !defined(DEPS)
  11. #====================================================================
  12. # clean deletes the entire directory tree for the current build config
  13. #====================================================================
  14. clean : $(PROJ_CLEAN)
  15.         -rmdir /s /q $(BUILDDIR)
  16. #====================================================================
  17. # show-targets prints a list of available targets
  18. #====================================================================
  19. show-targets :
  20. @echo Binaries available in this makefile are:
  21. !if "$(LIBS)" != ""
  22. @echo Static libraries : $(LIBS)
  23. !endif
  24. !if "$(DLLS)" != ""
  25. @echo Dynamic libraries : $(DLLS)
  26. !endif
  27. !if "$(PROGS)" != ""
  28. @echo Executables : $(PROGS)
  29. !endif
  30. #====================================================================
  31. # depends generates a file depends.mak which contains header dependencies
  32. #         for the source files in the tree.
  33. #====================================================================
  34. depends :
  35. @-$(MAKE) -nologo -a $(MAKEFLAGS) -f $(MAKEFILE) CFG=$(CFG) MYCFLAGS=-P
  36. @if exist $(BUILDDIR)depends.mak del $(BUILDDIR)depends.mak
  37. @echo -- Generating $(BUILDDIR)depends.mak
  38. @-for %%q in (*.i) do @(type %%q | $(MAKE_ROOT:/=)i386-win32gendeps >> $(BUILDDIR)depends.mak) && del %%q
  39. #====================================================================
  40. # headers copies all the public headers and scripts to the build area
  41. #         (normally automatically done when a library, DLL, or program is 
  42. #         successfully build)
  43. #====================================================================
  44. headers :
  45. !if "$(PUBLIC_HEADERS)" != ""
  46. for %%x in ($(PUBLIC_HEADERS)) do @copy %%x "$(SWISBSDK)include" > NUL
  47. !endif
  48. !if "$(PUBLIC_HEADER_TREES)" != ""
  49. -for %%x in ($(PUBLIC_HEADER_TREES)) do @robocopy /S %%x "$(SWISBSDK)include" *.h *.hpp /XD CVS > NUL
  50. !endif
  51. !if "$(PUBLIC_SCRIPTS)" != ""
  52. for %%x in ($(PUBLIC_SCRIPTS)) do @copy %%x "$(SWISBSDK)bin" > NUL
  53. !endif
  54. !if "$(PUBLIC_CONFIG_FILES)" != ""
  55. for %%x in ($(PUBLIC_CONFIG_FILES)) do @copy %%x "$(SWISBSDK)config" > NUL
  56. !endif
  57. !if "$(PUBLIC_ERROR_FILES)" != ""
  58. for %%x in ($(PUBLIC_ERROR_FILES)) do @copy %%x "$(SWISBSDK)config" > NUL
  59. !endif
  60. #====================================================================
  61. # MAKEDIRLIST creates the directory tree needed for the current build config
  62. #====================================================================
  63. $(MAKEDIRLIST:/=) :
  64.         @if not exist "$@nul" mkdir "$@"
  65.         @echo Created directory: $@
  66. #====================================================================
  67. # Recursive rule for LIB targets - spawns an nmake for each LIB target
  68. #====================================================================
  69. !if "$(LIBS)" != ""
  70. $(LIBS) : $(MAKEDIRLIST)
  71.         @$(MAKE) -nologo -$(MAKEFLAGS) -f $(MAKEFILE) CFG=$(CFG) 
  72.         "$(BUILDDIR)$@$(CFG_SUFFIX).lib" 
  73. !if defined(BROWSE)
  74.         "$(BUILDDIR)$@$(CFG_SUFFIX).bsc" 
  75. !endif
  76.         TARGET_BASENAME=$@ TARGET="$(BUILDDIR)$@$(CFG_SUFFIX)" 
  77.       TARGET_TYPE=LIB DEPS=$$^($@_OBJS^) TARGET_LIBS=$$^($@_LIBS^)
  78. !endif
  79. #====================================================================
  80. # Recursive rule for DLL targets - spawns an nmake for each DLL target
  81. #====================================================================
  82. !if "$(DLLS)" != ""
  83. $(DLLS) : $(MAKEDIRLIST)
  84.         @$(MAKE) -nologo -$(MAKEFLAGS) -f $(MAKEFILE) CFG=$(CFG) 
  85.         "$(BUILDDIR)$@$(CFG_SUFFIX).dll" 
  86. !if defined(BROWSE)
  87.         "$(BUILDDIR)$@$(CFG_SUFFIX).bsc" 
  88. !endif
  89.         TARGET_BASENAME=$@ TARGET="$(BUILDDIR)$@$(CFG_SUFFIX)" 
  90.       TARGET_TYPE=DLL DEPS=$$^($@_OBJS^) TARGET_LIBS=$$^($@_LIBS^) 
  91. !if defined(EXPLICIT_DEF_FILES)
  92.       TARGET_DEF=$$^($@_DEF^)
  93. !else
  94.       TARGET_DEF=$(PLATFORMDIR)/src/$@.def
  95. !endif
  96. !endif
  97. #====================================================================
  98. # Recursive rule for PROGS targets - spawns an nmake for each PROGS target
  99. #====================================================================
  100. !if "$(PROGS)" != ""
  101. $(PROGS) : $(MAKEDIRLIST)
  102.         @$(MAKE) -nologo -$(MAKEFLAGS) -f $(MAKEFILE) CFG=$(CFG) 
  103.         "$(BUILDDIR)$@$(CFG_SUFFIX).exe" 
  104. !if defined(BROWSE)
  105.         "$(BUILDDIR)$@$(CFG_SUFFIX).bsc" 
  106. !endif
  107.         TARGET_BASENAME=$@ TARGET="$(BUILDDIR)$@$(CFG_SUFFIX)" 
  108.       TARGET_TYPE=PROG DEPS=$$^($@_OBJS^) TARGET_LIBS=$$^($@_LIBS^)
  109. !endif
  110. !else # DEPS is defined so use the second half of the file instead
  111. !if exist ("$(BUILDDIR)/depends.mak")
  112. !include "$(BUILDDIR)/depends.mak"
  113. !endif
  114. # do some error checking
  115. !if "$(DEPS)" == ""
  116. !error DEPS is NULL. Did you define $(TARGET_BASENAME)_OBJS correctly?
  117. !endif
  118. #====================================================================
  119. # Build rule for LIB targets - used inside the recursion
  120. #====================================================================
  121. !if "$(TARGET_TYPE)" == "LIB"
  122. $(TARGET).lib : $(DEPS)
  123.         $(LIBRARIAN) $(LIBRARIAN_FLAGS) @<<
  124. $(DEPS)
  125. <<NOKEEP
  126. copy $(TARGET).lib "$(SWISBSDK)lib$(TARGET_BASENAME)$(CFG_SUFFIX).lib" > NUL
  127. !if "$(CFG)" == "debug"
  128. copy $(TARGET).pdb "$(SWISBSDK)bin$(TARGET_BASENAME)$(CFG_SUFFIX).pdb" > NUL
  129. !endif
  130. !if "$(PUBLIC_HEADERS)" != ""
  131. for %%x in ($(PUBLIC_HEADERS)) do @copy %%x "$(SWISBSDK)include" > NUL
  132. !endif
  133. !if "$(PUBLIC_HEADER_TREES)" != ""
  134. -for %%x in ($(PUBLIC_HEADER_TREES)) do @robocopy /S %%x "$(SWISBSDK)include" *.h *.hpp /XD CVS > NUL
  135. !endif
  136. !if "$(PUBLIC_SCRIPTS)" != ""
  137. for %%x in ($(PUBLIC_SCRIPTS)) do @copy %%x "$(SWISBSDK)bin" > NUL
  138. !endif
  139. !if "$(PUBLIC_CONFIG_FILES)" != ""
  140. for %%x in ($(PUBLIC_CONFIG_FILES)) do @copy %%x "$(SWISBSDK)config" > NUL
  141. !endif
  142. !if "$(PUBLIC_ERROR_FILES)" != ""
  143.     for %%x in ($(PUBLIC_ERROR_FILES)) do @copy %%x "$(SWISBSDK)config" > NUL
  144. !endif
  145. #====================================================================
  146. # Build rule for DLL targets - used inside the recursion
  147. #====================================================================
  148. !elseif "$(TARGET_TYPE)" == "DLL"
  149. !if "$(NO_DEF_FILES)" == ""
  150. DEPS = $(DEPS) $(PLATFORMDIR)src$(TARGET_BASENAME).def
  151. !endif
  152. $(TARGET).dll : $(DEPS)
  153.         $(LNK) $(LNKFLAGS) $(LNKFLAGS_DLL) @<<
  154. $(DEPS)
  155. <<NOKEEP
  156. copy $(TARGET).dll "$(SWISBSDK)bin$(TARGET_BASENAME)$(CFG_SUFFIX).dll" > NUL
  157. !if "$(CFG)" == "debug"
  158. copy $(TARGET).pdb "$(SWISBSDK)bin$(TARGET_BASENAME)$(CFG_SUFFIX).pdb" > NUL
  159. copy $(TARGET).map "$(SWISBSDK)bin$(TARGET_BASENAME)$(CFG_SUFFIX).map" > NUL
  160. !endif
  161. copy $(TARGET).lib "$(SWISBSDK)lib$(TARGET_BASENAME)$(CFG_SUFFIX).lib" > NUL
  162. !if "$(PUBLIC_HEADERS)" != ""
  163. for %%x in ($(PUBLIC_HEADERS)) do @copy %%x "$(SWISBSDK)include" > NUL
  164. !endif
  165. !if "$(PUBLIC_HEADER_TREES)" != ""
  166. -for %%x in ($(PUBLIC_HEADER_TREES)) do @robocopy /S %%x "$(SWISBSDK)include" *.h *.hpp /XD CVS > NUL
  167. !endif
  168. !if "$(PUBLIC_SCRIPTS)" != ""
  169. for %%x in ($(PUBLIC_SCRIPTS)) do @copy %%x "$(SWISBSDK)bin" > NUL
  170. !endif
  171. !if "$(PUBLIC_CONFIG_FILES)" != ""
  172. for %%x in ($(PUBLIC_CONFIG_FILES)) do @copy %%x "$(SWISBSDK)config" > NUL
  173. !endif
  174. !if "$(PUBLIC_ERROR_FILES)" != ""
  175.     for %%x in ($(PUBLIC_ERROR_FILES)) do @copy %%x "$(SWISBSDK)config" > NUL
  176. !endif
  177. #====================================================================
  178. # Build rule for PROG targets - used inside the recursion
  179. #====================================================================
  180. !elseif "$(TARGET_TYPE)" == "PROG"
  181. $(TARGET).exe : $(DEPS)
  182.         $(LNK) $(LNKFLAGS) $(LNKFLAGS_CONSOLE) @<<
  183. $(DEPS)
  184. <<NOKEEP
  185. copy $(TARGET).exe "$(SWISBSDK)bin$(TARGET_BASENAME)$(CFG_SUFFIX).exe" > NUL
  186. !if "$(CFG)" == "debug"
  187. copy $(TARGET).pdb "$(SWISBSDK)bin$(TARGET_BASENAME)$(CFG_SUFFIX).pdb" > NUL
  188. copy $(TARGET).map "$(SWISBSDK)bin$(TARGET_BASENAME)$(CFG_SUFFIX).map" > NUL
  189. !endif
  190. !if "$(PUBLIC_HEADERS)" != ""
  191. for %%x in ($(PUBLIC_HEADERS)) do @copy %%x "$(SWISBSDK)include" > NUL
  192. !endif
  193. !if "$(PUBLIC_HEADER_TREES)" != ""
  194. -for %%x in ($(PUBLIC_HEADER_TREES)) do @robocopy /S %%x "$(SWISBSDK)include" *.h *.hpp /XD CVS > NUL
  195. !endif
  196. !if "$(PUBLIC_SCRIPTS)" != ""
  197. for %%x in ($(PUBLIC_SCRIPTS)) do @copy %%x "$(SWISBSDK)bin" > NUL
  198. !endif
  199. !if "$(PUBLIC_CONFIG_FILES)" != ""
  200. for %%x in ($(PUBLIC_CONFIG_FILES)) do @copy %%x "$(SWISBSDK)config" > NUL
  201. !endif
  202. !if "$(PUBLIC_ERROR_FILES)" != ""
  203.     for %%x in ($(PUBLIC_ERROR_FILES)) do @copy %%x "$(SWISBSDK)config" > NUL
  204. !endif
  205. !endif # $(TARGET_TYPE)
  206. !if defined(BROWSE)
  207. $(TARGET).bsc : $(DEPS:.obj=.sbr)
  208.         @echo ** Generating browse info: $@
  209. -dir $(BUILDDIR)*.sbr /b /s > zzqq153x.rsp
  210. -bscmake $(BROWSE_FLAGS) @zzqq153x.rsp
  211. -del zzqq153x.rsp
  212. !endif
  213. #====================================================================
  214. # Common inference rules needed inside the recursion
  215. #====================================================================
  216. .SUFFIXES: .cpp .mc .rc .idl
  217. .c.obj:
  218.         $(CC) $(CFLAGS) $<
  219. .c{$(BUILDDIR)}.obj:
  220.         $(CC) $(CFLAGS) $<
  221. .cpp.obj:
  222.         $(CC) $(CPPFLAGS) $<
  223. .cpp{$(BUILDDIR)}.obj:
  224.         $(CC) $(CPPFLAGS) $<
  225. .mc{$(BUILDDIR)}.rc:
  226.         mc $(MFLAGS) $<
  227. .rc{$(BUILDDIR)}.res:
  228.         $(RC) $(RFLAGS) /r $<
  229. .idl{$(BUILDDIR)}.tlb:
  230. $(MTL) /tlb "$@" /h "$(*B).h" /iid "$*_i.c" $(MTLFLAGS) $<
  231. {$(PLATFORMDIR)/src}.c{$(BUILDDIR)}.obj:
  232.         $(CC) $(CFLAGS) $<
  233. {$(PLATFORMDIR)/src}.cpp{$(BUILDDIR)}.obj:
  234.         $(CC) $(CPPFLAGS) $<
  235. {$(PLATFORMDIR)/src}.rc{$(BUILDDIR)}.res:
  236.         $(RC) $(RFLAGS) /r $<
  237. !endif # DEPS