MAKEFILE
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:7k
源码类别:

Windows编程

开发平台:

Visual C++

  1. ####
  2. #makefile - makefile for browseh.dll
  3. #
  4. #       Copyright 1994 - 1997 Microsoft Corporation
  5. #
  6. #Purpose:
  7. #  Builds the Inproc OLE 2.0 Automation object, browseh.dll.
  8. #  By default a 32 bit ANSI DLL that can run on Win95
  9. #  and NT 3.51 is built.
  10. #
  11. #  Usage: NMAKE                 ; build with default (32 bit ANSI for NT & Win95)
  12. #     or: NMAKE option          ; build with the given option(s)
  13. #     or: NMAKE clean           ; erase all compiled files
  14. #  Use NMAKE clean before re-building with options.
  15. #
  16. #     option: dev = [win16 | win32]    ; dev=win32 is the default
  17. #             DEBUG=[0 | 1]          ; DEBUG=1 is the default
  18. #             HOST=[DOS | NT | WIN95]  ; HOST=DOS
  19. #                                      ; HOST=NT (for Unicode win32 on NT)
  20. #                                      ; HOST=WIN95 (for ANSI win32 on Win95 & NT)
  21. #                                      ; HOST=WIN95 is the default
  22. #
  23. #Notes:
  24. #  This makefile assumes that the PATH, INCLUDE and LIB environment
  25. #  variables are setup properly.
  26. #
  27. ##############################################################################
  28. ##########################################################################
  29. #
  30. # Default Settings
  31. # Change the following dev & HOST settings to compile hello for 16 bit, 
  32. # 32 bit Unicode on NT or 32 bit ANSI on NT & Win95
  33. !if "$(dev)" == ""
  34. dev = win32 
  35. HOST = WIN95
  36. !endif
  37. !if !("$(dev)" == "win16" || "$(dev)" == "win32")
  38. !error Invalid dev option, choose from [win16 | win32]
  39. !endif
  40. !if "$(dev)" == "win16"
  41. TARGET  = WIN16
  42. !if "$(HOST)" == ""
  43. HOST  = DOS
  44. !endif
  45. !endif
  46. !if "$(dev)" == "win32"
  47. TARGET  = WIN32
  48. !if "$(HOST)" == ""
  49. HOST  = WIN95
  50. !endif
  51. !endif
  52. !undef NODEBUG
  53. !if "$(DEBUG)" == "0"
  54. NODEBUG = 1
  55. !endif
  56. ##########################################################################
  57. #
  58. # WIN16 Settings
  59. #
  60. !if "$(TARGET)" == "WIN16"
  61. CC   = cl
  62. LINK = link
  63. !if "$(HOST)" == "DOS"
  64. WX   = wx /w 
  65. !else
  66. WX   =
  67. !endif
  68. TLIBCOMPILER = $(WX) mktyplib
  69. RCFLAGS = -dWIN16
  70. CFLAGS = -c -W3 -AM -GD -DWIN16
  71. LINKFLAGS = /NOD /BATCH /ONERROR:NOEXE 
  72. LIBS = libw.lib mdllcew.lib
  73. !ifdef NODEBUG
  74. CFLAGS = $(CFLAGS) -Ox $(CL)
  75. LINKFLAGS = $(LINKFLAGS) /FAR /PACKC
  76. !else
  77. CFLAGS = $(CFLAGS) -Od -Zi -D_DEBUG $(CL)
  78. LINKFLAGS = $(LINKFLAGS) /COD
  79. !endif
  80. !endif
  81. ##########################################################################
  82. #
  83. # WIN32 Settings
  84. #
  85. !if "$(TARGET)" == "WIN32"
  86. WX = 
  87. TLIBCOMPILER = MIDL /mktyplib203 
  88. !include <olesampl.mak>
  89. CC = $(cc)
  90. CFLAGS = $(cflags) $(cvarsmt) -DINC_OLE2 $(cdebug)
  91. !if "$(HOST)" == "NT"
  92. CFLAGS = $(CFLAGS) -DUNICODE
  93. !endif
  94. !ifdef NODEBUG
  95. !else
  96. CFLAGS = $(CFLAGS) -D_DEBUG
  97. !endif
  98. LINK = $(link)
  99. LINKFLAGS = $(linkdebug) $(guilflags) -dll -entry:_DllMainCRTStartup$(DLLENTRY)
  100. RCFLAGS = -DWIN32
  101. !endif
  102. ##########################################################################
  103. #
  104. # Build rules
  105. #
  106. .cpp.obj:
  107.     @echo Compiling $<...
  108.     $(CC) $<
  109. .c.obj:
  110.     @echo Compiling $<...
  111.     $(CC) $<
  112. ##########################################################################
  113. #
  114. # Application Settings
  115. #
  116. APPS = browseh
  117. !if "$(TARGET)" == "WIN16"
  118. LIBS = $(LIBS) ole2.lib compobj.lib ole2disp.lib typelib.lib 
  119. !endif
  120. !if "$(TARGET)" == "WIN32"
  121. LIBS = $(ole2libsmt)
  122. !endif
  123. OBJS = alias.obj main.obj mydisp.obj browseh.obj browsecf.obj collect.obj 
  124.        enumvar.obj typelib.obj typeinfo.obj intface.obj dispface.obj module.obj 
  125.        coclass.obj function.obj property.obj param.obj enum.obj constant.obj 
  126.        type.obj union.obj struct.obj   
  127. ##########################################################################
  128. #
  129. # Default Goal
  130. #
  131. goal : setflags $(APPS).dll
  132. setflags :
  133.     set CL=$(CFLAGS)
  134. ##########################################################################
  135. #
  136. # Application Build (WIN16 Specific)
  137. #
  138. !if "$(TARGET)" == "WIN16"
  139. $(APPS).dll : $(APPS).tlb $(OBJS) $(APPS).def $(APPS).res 
  140.     link @<< 
  141. $(LINKFLAGS)+ 
  142. $(OBJS),
  143. $@,,
  144. $(LIBS),
  145. $(APPS).def
  146. <<
  147.     rc -k -t $(APPS).res $@
  148. !endif
  149. ##########################################################################
  150. #
  151. # Application Build (WIN32 Specific)
  152. #
  153. !if "$(TARGET)" == "WIN32"
  154. $(APPS).dll : $(APPS).tlb $(OBJS) $(APPS).def $(APPS).res 
  155.       $(LINK) @<< 
  156.         $(LINKFLAGS)
  157.         -out:$@ 
  158.         -map:$*.map
  159.         $(OBJS)
  160.         $(APPS).res
  161.         $(LIBS)
  162. <<
  163. !endif
  164. ##########################################################################
  165. #
  166. # Application Build (Common)
  167. #
  168. $(APPS).res : $(APPS).rc
  169.     rc $(RCFLAGS) -r -fo$@ $?
  170. ##########################################################################
  171. #
  172. # Dependencies
  173. #
  174. mydisp.tlb :: mydisp.odl 
  175.      if exist mydisp.tlb  del mydisp.tlb 
  176.      $(TLIBCOMPILER) /D$(TARGET) /o mydisp.log /tlb mydisp.tlb mydisp.odl
  177.      type mydisp.log
  178. browseh.tlb : browseh.odl mydisp.tlb
  179.      if exist tlb.h  del tlb.h
  180.      if exist browseh.tlb  del browseh.tlb
  181.      $(TLIBCOMPILER) /D$(TARGET) /h tlb.h /o browseh.log /tlb browseh.tlb browseh.odl
  182.      type browseh.log
  183. main.obj : main.cpp browseh.h mydisp.h tlb.h
  184.      $(CC) main.cpp 
  185. mydisp.obj : mydisp.cpp browseh.h mydisp.h tlb.h
  186.      $(CC) mydisp.cpp     
  187. browseh.obj : browseh.cpp browseh.h mydisp.h tlb.h
  188.      $(CC) browseh.cpp
  189. browsecf.obj : browsecf.cpp browseh.h mydisp.h tlb.h
  190.      $(CC) browsecf.cpp
  191. typelib.obj : typelib.cpp browseh.h mydisp.h tlb.h
  192.      $(CC) typelib.cpp     
  193. typeinfo.obj : typeinfo.cpp browseh.h mydisp.h tlb.h
  194.      $(CC) typeinfo.cpp
  195. intface.obj : intface.cpp browseh.h mydisp.h tlb.h
  196.      $(CC) intface.cpp
  197. dispface.obj : dispface.cpp browseh.h mydisp.h tlb.h
  198.      $(CC) dispface.cpp   
  199. module.obj : module.cpp browseh.h mydisp.h tlb.h
  200.      $(CC) module.cpp
  201. coclass.obj : coclass.cpp browseh.h mydisp.h tlb.h
  202.      $(CC) coclass.cpp    
  203. function.obj : function.cpp browseh.h mydisp.h tlb.h
  204.      $(CC) function.cpp
  205. property.obj : property.cpp browseh.h mydisp.h tlb.h
  206.      $(CC) property.cpp
  207. param.obj : param.cpp browseh.h mydisp.h tlb.h
  208.      $(CC) param.cpp   
  209. collect.obj : collect.cpp browseh.h mydisp.h tlb.h
  210.      $(CC) collect.cpp
  211. enumvar.obj : enumvar.cpp browseh.h mydisp.h tlb.h
  212.      $(CC) enumvar.cpp     
  213. enum.obj : enum.cpp browseh.h mydisp.h tlb.h
  214.      $(CC) enum.cpp 
  215. constant.obj : constant.cpp browseh.h mydisp.h tlb.h
  216.      $(CC) constant.cpp   
  217. alias.obj : alias.cpp browseh.h mydisp.h tlb.h
  218.      $(CC) alias.cpp      
  219. struct.obj : struct.cpp browseh.h mydisp.h tlb.h
  220.      $(CC) struct.cpp 
  221. union.obj : union.cpp browseh.h mydisp.h tlb.h
  222.      $(CC) union.cpp
  223. type.obj : type.cpp browseh.h mydisp.h tlb.h
  224.      $(CC) type.cpp
  225. ##########################################################################
  226. #
  227. # Clean (erase) generated files
  228. #
  229. clean :
  230.     if exist *.obj       del *.obj
  231.     if exist $(APPS).map del $(APPS).map
  232.     if exist $(APPS).res del $(APPS).res
  233.     if exist *.log       del *.log
  234.     if exist *.exp       del *.exp
  235.     if exist *.lib       del *.lib