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

Windows编程

开发平台:

Visual C++

  1. ##############################################################################
  2. #
  3. #  (c) Copyright Microsoft Corp. 1992-1993 All Rights Reserved
  4. #
  5. #  File:
  6. #
  7. #    makefile - makefile for spoly2.exe
  8. #
  9. #  Purpose:
  10. #
  11. #    Builds the OLE 2.0 sample IDispatch server, dispcalc.exe.
  12. #
  13. #
  14. #  Usage:
  15. #
  16. #     NMAKE                     ; build with defaults
  17. #     or: NMAKE option          ; build with the given option(s)
  18. #     or: NMAKE clean           ; erase all compiled files
  19. #
  20. #     option:
  21. #         dev = [win16 | win32] ; dev=win32 is the default
  22. #         DEBUG=[0|1]           ; DEBUG=1 is the default
  23. #
  24. #  Notes:
  25. #
  26. #    This makefile assumes that the PATH, INCLUDE and LIB environment
  27. #    variables are setup properly.
  28. #
  29. ##############################################################################
  30. ##########################################################################
  31. #
  32. # Default Settings
  33. #
  34. !if "$(dev)" == ""
  35. dev = win32
  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. !endif
  43. !if "$(dev)" == "win32"
  44. TARGET  = WIN32
  45. !endif
  46. !ifdef NODEBUG
  47. DEBUG = 0
  48. !endif
  49. !if "$(DEBUG)" == "0"
  50. NODEBUG = 1
  51. !endif
  52. !if "$(DEBUG)" == ""
  53. DEBUG = 1
  54. !endif
  55. ##########################################################################
  56. #
  57. # WIN16 Settings
  58. #
  59. !if "$(TARGET)" == "WIN16"
  60. CC   = cl
  61. LINK = link
  62. RCFLAGS = -dWIN16
  63. CFLAGS = -c -W3 -AM -GA -GEs -DWIN16
  64. LINKFLAGS = /NOD /NOI /BATCH /ONERROR:NOEXE
  65. LIBS = libw.lib mlibcew.lib
  66. !if "$(DEBUG)" == "1"
  67. CFLAGS = $(CFLAGS) -Od -Zi -D_DEBUG $(CL)
  68. LINKFLAGS = $(LINKFLAGS) /COD
  69. !else
  70. CFLAGS = $(CFLAGS) -Ox $(CL)
  71. LINKFLAGS = $(LINKFLAGS) /FAR /PACKC
  72. !endif
  73. !endif
  74. ##########################################################################
  75. #
  76. # WIN32 Settings
  77. #
  78. !if "$(TARGET)" == "WIN32"
  79. !include <olesampl.mak>
  80. CC = $(cc)
  81. CFLAGS = $(cflags) $(cvarsmt) -DINC_OLE2 $(cdebug)
  82. !ifndef NODEBUG
  83. CFLAGS = $(CFLAGS) -D_DEBUG
  84. !endif
  85. LINK = $(link)
  86. LINKFLAGS = $(linkdebug) $(guilflags)
  87. RCFLAGS = -DWIN32
  88. !endif
  89. ##########################################################################
  90. #
  91. # Build rules
  92. #
  93. .cpp.obj:
  94.     @echo Compiling $<...
  95.     $(CC) $<
  96. .c.obj:
  97.     @echo Compiling $<...
  98.     $(CC) $<
  99. ##########################################################################
  100. #
  101. # Application Settings
  102. #
  103. APPS = dispcalc
  104. !if "$(TARGET)" == "WIN16"
  105. LIBS = ole2.lib compobj.lib ole2disp.lib $(LIBS)
  106. !else
  107. !if "$(TARGET)" == "WIN32"
  108. LIBS = $(olelibsmt)
  109. !endif
  110. !endif
  111. OBJS = 
  112.         winmain.obj     
  113.         idata.obj       
  114.         dispcalc.obj    
  115.         clsid.obj
  116. ##########################################################################
  117. #
  118. # Default Goal
  119. #
  120. goal : setflags $(APPS).exe
  121. setflags :
  122.         set CL=$(CFLAGS)
  123. ##########################################################################
  124. #
  125. # Clean (erase) generated files
  126. #
  127. clean :
  128.     if exist *.obj       del *.obj
  129.     if exist $(APPS).exe del $(APPS).exe
  130.     if exist $(APPS).map del $(APPS).map
  131.     if exist $(APPS).res del $(APPS).res
  132. ##########################################################################
  133. #
  134. # Application Build (WIN16 Specific)
  135. #
  136. !if "$(TARGET)" == "WIN16"
  137. $(APPS).exe : $(OBJS) $(APPS).def $(APPS).res $(APPS).ico
  138.         link $(LINKFLAGS) @<<
  139. $(OBJS),
  140. $@,,
  141. $(LIBS),
  142. $(APPS).def
  143. <<
  144.         rc -k -t $(APPS).res $@
  145. !endif
  146. ##########################################################################
  147. #
  148. # Application Build (WIN32 Specific)
  149. #
  150. !if "$(TARGET)" == "WIN32"
  151. $(APPS).exe : $(OBJS) $(APPS).def $(APPS).res $(APPS).ico
  152.       $(LINK) @<<
  153.         $(LINKFLAGS)
  154.         -out:$@
  155.         -map:$*.map
  156.         $(OBJS)
  157.         $(APPS).res
  158.         $(LIBS)
  159. <<
  160. !endif
  161. ##########################################################################
  162. #
  163. # Application Build (Common)
  164. #
  165. $(APPS).res : $(APPS).rc
  166.         rc  $(RCFLAGS) -r -fo$@ $?
  167. ##########################################################################
  168. #
  169. # Dependencies
  170. #
  171. winmain.obj: winmain.cpp dispcalc.h
  172.     $(CC) winmain.cpp
  173. idata.obj: idata.cpp dispcalc.h
  174.     $(CC) idata.cpp
  175. dispcalc.obj: dispcalc.cpp dispcalc.h
  176.     $(CC) dispcalc.cpp
  177. clsid.obj: clsid.c clsid.h
  178.     $(CC) clsid.c