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 / dspcalc2 / makefile < prev    next >
Makefile  |  1997-11-19  |  5KB  |  240 lines

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