Source code of Windows XP (NT5)
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.

282 lines
6.9 KiB

  1. ###############################################################################
  2. #
  3. # Microsoft Confidential
  4. # Copyright (C) Microsoft Corporation 1995
  5. # All Rights Reserved.
  6. #
  7. # URL Shell extension makefile
  8. #
  9. ###############################################################################
  10. !if "$(NTMAKEENV)" != ""
  11. #
  12. # This section is for the NT build ONLY.
  13. # For NT build, change the 'sources' or 'dirs' file, not this makefile
  14. #
  15. clean:
  16. !else
  17. #
  18. # Non-NT build makefile start HERE.
  19. #
  20. ####################
  21. # macro definitions
  22. ####################
  23. ROOT = ..\..\..
  24. BASE_NAME = url
  25. DLL = 1
  26. CORE_DIR = $(ROOT)\win
  27. SHELL_DIR = $(CORE_DIR)\shell
  28. SHELLDLL_DIR = $(SHELL_DIR)\shelldll
  29. !ifndef BUILD
  30. BUILD = debug
  31. !endif
  32. LIBS = kernel32.lib gdi32.lib user32.lib advapi32.lib shlwapi.lib shell32.lib comctl32.lib
  33. LIBS = $(LIBS) libcmt.lib
  34. LIBS = $(LIBS) uuid.lib
  35. ENTRY_POINT = DllMain
  36. EXT_C_SWITCHES = -Gz -W3
  37. EXT_DEFINES = -D_MT \
  38. -DEXPV \
  39. -DMIME
  40. !if "$(BUILD)" == "debug"
  41. EXT_DEFINES = $(EXT_DEFINES) \
  42. -DVSTF
  43. !endif
  44. EXT_DEFINES = $(EXT_DEFINES: = )
  45. EXT_INCLUDE = $(CORE_DIR)\inc
  46. EXT_TARGETS = $(DEST_DIR)\$(OUT_NAME).lib \
  47. $(DEST_DIR)\$(OUT_NAME).rlb
  48. ASM_SRC =
  49. ASM_OBJ =
  50. URL_C_SRC = assoc.c \
  51. comc.c \
  52. debspew.c \
  53. filetype.c \
  54. fsassoc.c \
  55. inetcpl.c \
  56. inifile.c \
  57. init.c \
  58. memmgr.c \
  59. olevalid.c \
  60. resstr.c \
  61. serial.c \
  62. isguids.c \
  63. shlvalid.c \
  64. util.c \
  65. valid.c
  66. #SHELLDLL_C_SRC = $(SHELLDLL_DIR)\hash.c
  67. #C_SRC = $(URL_C_SRC) $(SHELLDLL_C_SRC)
  68. C_SRC = $(URL_C_SRC)
  69. C_SRC = $(C_SRC: = )
  70. URL_C_OBJ = $(DEST_DIR)\assoc.obj \
  71. $(DEST_DIR)\comc.obj \
  72. $(DEST_DIR)\filetype.obj \
  73. $(DEST_DIR)\fsassoc.obj \
  74. $(DEST_DIR)\inetcpl.obj \
  75. $(DEST_DIR)\init.obj \
  76. $(DEST_DIR)\memmgr.obj \
  77. $(DEST_DIR)\serial.obj \
  78. $(DEST_DIR)\isguids.obj \
  79. $(DEST_DIR)\util.obj \
  80. $(DEST_DIR)\valid.obj
  81. !if "$(BUILD)" == "debug"
  82. URL_C_OBJ = $(URL_C_OBJ) \
  83. $(DEST_DIR)\debspew.obj \
  84. $(DEST_DIR)\inifile.obj \
  85. $(DEST_DIR)\olevalid.obj \
  86. $(DEST_DIR)\resstr.obj \
  87. $(DEST_DIR)\shlvalid.obj
  88. !endif
  89. SHELLDLL_C_OBJ = $(DEST_DIR)\hash.obj
  90. C_OBJ = $(URL_C_OBJ) \
  91. $(SHELLDLL_C_OBJ)
  92. C_OBJ = $(C_OBJ: = )
  93. CPP_SRC = autodial.cpp \
  94. comcpp.cpp \
  95. contmenu.cpp \
  96. dataobj.cpp \
  97. dllinit.cpp \
  98. enumfmte.cpp \
  99. extricon.cpp \
  100. ftps.cpp \
  101. guids.cpp \
  102. inetps.cpp \
  103. intshcut.cpp \
  104. persist.cpp \
  105. propsht.cpp \
  106. newshk.cpp \
  107. refcount.cpp \
  108. shlexhk.cpp \
  109. shlink.cpp \
  110. url.cpp
  111. CPP_OBJ = $(DEST_DIR)\autodial.obj \
  112. $(DEST_DIR)\comcpp.obj \
  113. $(DEST_DIR)\contmenu.obj \
  114. $(DEST_DIR)\dataobj.obj \
  115. $(DEST_DIR)\dllinit.obj \
  116. $(DEST_DIR)\enumfmte.obj \
  117. $(DEST_DIR)\extricon.obj \
  118. $(DEST_DIR)\ftps.obj \
  119. $(DEST_DIR)\guids.obj \
  120. $(DEST_DIR)\inetps.obj \
  121. $(DEST_DIR)\intshcut.obj \
  122. $(DEST_DIR)\persist.obj \
  123. $(DEST_DIR)\propsht.obj \
  124. $(DEST_DIR)\newshk.obj \
  125. $(DEST_DIR)\refcount.obj \
  126. $(DEST_DIR)\shlexhk.obj \
  127. $(DEST_DIR)\shlink.obj \
  128. $(DEST_DIR)\url.obj
  129. SRC = $(ASM_SRC) $(C_SRC) $(CPP_SRC)
  130. #
  131. # Set documentation macros.
  132. #
  133. INTSHCUT_DOC_LIST = intshcut.txt
  134. DOC_LIST = $(INTSHCUT_DOC_LIST)
  135. DOCS_DIR = docs
  136. #################
  137. # common headers
  138. #################
  139. !include $(ROOT)\inet\ohare\ohare.mk
  140. !include $(ROOT)\inet\ohare\win32.mk
  141. #######################
  142. # build pseudo-targets
  143. #######################
  144. #
  145. # Build Internet Shortcut documentation (API descriptions and WinHelp).
  146. #
  147. docs: checkdoc apidescs winhelp
  148. ##############
  149. # build rules
  150. ##############
  151. #
  152. # Build stolen Shell modules.
  153. #
  154. $(DEST_DIR)\filetype.obj: filetype.c
  155. @$(CL) @<<
  156. $(CL_SWITCHES) -W3 $(DEFINES) -Yu$(PCH_C_INCLUDE) -Fp$(PCH_C_PCH) -Fo$@ filetype.c
  157. <<
  158. $(DEST_DIR)\fsassoc.obj: fsassoc.c
  159. @$(CL) @<<
  160. $(CL_SWITCHES) -W3 $(DEFINES) -USTRICT -Fo$@ fsassoc.c
  161. <<
  162. $(DEST_DIR)\hash.obj: hash.c
  163. @$(CL) @<<
  164. $(CL_SWITCHES) -W3 $(DEFINES) -USTRICT -Fo$@ hash.c
  165. <<
  166. #
  167. # Add explicit resource dependency on icons.
  168. #
  169. $(DEST_DIR)\$(BASE_NAME).res: webdoc.ico
  170. #
  171. # Add GUID object file to private import library.
  172. #
  173. $(DEST_DIR)\$(OUT_NAME).lib: $(DEST_DIR)\isguids.obj
  174. $(LINK) -lib -out:$@ $@ $(DEST_DIR)\isguids.obj
  175. #
  176. # Preprocess PDK import library module definition file.
  177. #
  178. $(DEST_DIR)\$(BASE_NAME).rdf: $(BASE_NAME).def
  179. $(CL) -nologo -EP $(DEFINES) -DPDK -Tc$(BASE_NAME).def > $@
  180. #
  181. # Create PDK import library, and add GUID object file.
  182. #
  183. $(DEST_DIR)\$(OUT_NAME).rlb: $(OBJ_LIST) $(DEST_DIR)\$(BASE_NAME).rdf $(DEST_DIR)\isguids.obj
  184. $(LINK) -lib @<<
  185. -def:$(DEST_DIR)\$(BASE_NAME).rdf
  186. -machine:ix86
  187. $(OBJ_LIST)
  188. -out:$@
  189. <<
  190. $(LINK) -lib -out:$@ $@ $(DEST_DIR)\isguids.obj
  191. #
  192. # Create documentation directory.
  193. #
  194. checkdoc: banner
  195. @if not exist $(DOCS_DIR)\nul mkdir $(DOCS_DIR)
  196. #
  197. # Generate Internet Shortcut interface and API descriptions.
  198. #
  199. apidescs: $(DOCS_DIR)\isifaces.rtf $(DOCS_DIR)\isapis.rtf $(DOCS_DIR)\mimeapis.rtf
  200. $(DOCS_DIR)\isifaces.rtf: $(INTSHCUT_DOC_LIST)
  201. $(AUTODOC) -rd -x INTSHCUTIFACE -o $@ $**
  202. $(DOCS_DIR)\isapis.rtf: $(INTSHCUT_DOC_LIST)
  203. $(AUTODOC) -rd -x INTSHCUTAPI -o $@ $**
  204. $(DOCS_DIR)\mimeapis.rtf: $(INTSHCUT_DOC_LIST)
  205. $(AUTODOC) -rd -x MIMEAPI -o $@ $**
  206. #
  207. # Generate Internet Shortcut WinHelp file.
  208. #
  209. winhelp: $(DOCS_DIR)\intshcut.hlp
  210. $(DOCS_DIR)\intshcut.hlp: $(DOCS_DIR)\intshcut.hpj $(DOCS_DIR)\intshcut.rtf
  211. $(HC) $(DOCS_DIR)\intshcut.hpj
  212. $(MOVE) intshcut.hlp $(DOCS_DIR)
  213. $(DOCS_DIR)\intshcut.hpj $(DOCS_DIR)\intshcut.rtf: $(DOC_LIST)
  214. $(AUTODOC) -rh -x INTSHCUTIFACE -x INTSHCUTAPI -x MIMEAPI -o $(DOCS_DIR)\intshcut.rtf $**
  215. !endif # !if NTMAKEENV