home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / oleaut / dispdemo / makefile < prev    next >
Makefile  |  1997-11-19  |  4KB  |  233 lines

  1. ##############################################################################
  2. #
  3. #  (c) Copyright Microsoft Corp. 1992-1993 All Rights Reserved
  4. #
  5. #  File:
  6. #
  7. #    makefile - makefile for dispdemo.exe
  8. #
  9. #  Purpose:
  10. #
  11. #    Builds the OLE 2.0 IDispatch sample client application, dispdemo.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. #
  25. #  Notes:
  26. #
  27. #    This makefile assumes that the PATH, INCLUDE and LIB environment
  28. #    variables are setup properly.
  29. #
  30. ##############################################################################
  31.  
  32.  
  33.  
  34. ##########################################################################
  35. #
  36. # Default Settings
  37. #
  38.  
  39. !if "$(dev)" == ""
  40. dev = win32
  41. !endif
  42.  
  43. !if !("$(dev)" == "win16" || "$(dev)" == "win32")
  44. !error Invalid dev option, choose from [win16 | win32]
  45. !endif
  46.  
  47. !if "$(dev)" == "win16"
  48. TARGET  = WIN16
  49. !endif
  50.  
  51. !if "$(dev)" == "win32"
  52. TARGET  = WIN32
  53. !endif
  54.  
  55. !ifdef NODEBUG
  56. DEBUG = 0
  57. !endif
  58.  
  59. !if "$(DEBUG)" == "0"
  60. NODEBUG = 1
  61. !endif
  62.  
  63. !if "$(DEBUG)" == ""
  64. DEBUG = 1
  65. !endif
  66.  
  67.  
  68. ##########################################################################
  69. #
  70. # WIN16 Settings
  71. #
  72. !if "$(TARGET)" == "WIN16"
  73.  
  74. CC   = cl
  75. LINK = link
  76.  
  77. RCFLAGS = -dWIN16
  78. CFLAGS = -W3 -AM -GA -GEs -DWIN16 -c
  79. LINKFLAGS = /NOD /NOI /BATCH /ONERROR:NOEXE
  80.  
  81. LIBS = libw.lib mlibcew.lib
  82.  
  83. !if "$(DEBUG)" == "1"
  84. CFLAGS = $(CFLAGS) -Od -Zi -D_DEBUG $(CL)
  85. LINKFLAGS = $(LINKFLAGS) /COD
  86. !else
  87. CFLAGS = $(CFLAGS) -Ox $(CL)
  88. LINKFLAGS = $(LINKFLAGS) /FAR /PACKC
  89. !endif
  90. !endif
  91.  
  92.  
  93. ##########################################################################
  94. #
  95. # WIN32 Settings
  96. #
  97. !if "$(TARGET)" == "WIN32"
  98.  
  99. !include <olesampl.mak>
  100.  
  101. CC = $(cc)
  102. CFLAGS = $(cflags) $(cvarsmt) -DINC_OLE2  $(cdebug)
  103.  
  104. !ifndef NODEBUG
  105. CFLAGS = $(CFLAGS) -D_DEBUG
  106. !endif
  107.  
  108. LINK = $(link)
  109. LINKFLAGS = $(linkdebug) $(guilflags)
  110. RCFLAGS = -DWIN32
  111.  
  112. !endif
  113.  
  114.  
  115. ##########################################################################
  116. #
  117. # Build rules
  118. #
  119.  
  120. .cpp.obj:
  121.     @echo Compiling $<...
  122.     $(CC) $<
  123.  
  124. .c.obj:
  125.     @echo Compiling $<...
  126.     $(CC) $<
  127.  
  128.  
  129. ##########################################################################
  130. #
  131. # Application Settings
  132. #
  133.  
  134. APPS = dispdemo
  135.  
  136.  
  137. !if "$(TARGET)" == "WIN16"
  138. LIBS = ole2.lib compobj.lib ole2disp.lib $(LIBS)
  139. !endif
  140. !if "$(TARGET)" == "WIN32"
  141. LIBS = $(olelibsmt)
  142. !endif
  143.  
  144. OBJS = \
  145.          winmain.obj \
  146.          misc.obj \
  147.          crempoly.obj \
  148.          clsid.obj
  149.  
  150.  
  151. ##########################################################################
  152. #
  153. # Default Goal
  154. #
  155.  
  156. goal : setflags $(APPS).exe
  157.  
  158. setflags :
  159.         set CL=$(CFLAGS)
  160.  
  161.  
  162. ##########################################################################
  163. #
  164. # Clean (erase) generated files
  165. #
  166. clean :
  167.     if exist *.obj       del *.obj
  168.     if exist $(APPS).exe del $(APPS).exe
  169.     if exist $(APPS).map del $(APPS).map
  170.     if exist $(APPS).res del $(APPS).res
  171.  
  172.  
  173. ##########################################################################
  174. #
  175. # Application Build (WIN16 Specific)
  176. #
  177.  
  178. !if "$(TARGET)" == "WIN16"
  179. $(APPS).exe : $(OBJS) $(APPS).def $(APPS).res $(APPS).ico
  180.         link $(LINKFLAGS) @<<
  181. $(OBJS),
  182. $@,,
  183. $(LIBS),
  184. $(APPS).def
  185. <<
  186.         rc -k -t $(APPS).res $@
  187. !endif
  188.  
  189.  
  190. ##########################################################################
  191. #
  192. # Application Build (WIN32 Specific)
  193. #
  194. !if "$(TARGET)" == "WIN32"
  195. $(APPS).exe : $(OBJS) $(APPS).def $(APPS).res $(APPS).ico
  196.       $(LINK) @<<
  197.         $(LINKFLAGS)
  198.         -out:$@
  199.         -map:$*.map
  200.         $(OBJS)
  201.         $(APPS).res
  202.         $(LIBS)
  203. <<
  204. !endif
  205.  
  206.  
  207. ##########################################################################
  208. #
  209. # Application Build (Common)
  210. #
  211.  
  212. $(APPS).res : $(APPS).rc
  213.         rc $(RCFLAGS) -r -fo$@ $?
  214.  
  215.  
  216. ##########################################################################
  217. #
  218. # Dependencies
  219. #
  220.  
  221. winmain.obj: winmain.cpp dispdemo.h
  222.     $(CC) winmain.cpp
  223.  
  224. misc.obj: misc.cpp dispdemo.h
  225.     $(CC) misc.cpp
  226.  
  227. crempoly.obj: crempoly.cpp crempoly.h
  228.     $(CC) crempoly.cpp
  229.  
  230. clsid.obj: clsid.c clsid.h
  231.     $(CC) clsid.c
  232.  
  233.