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 / tibrowse / makefile next >
Makefile  |  1997-11-19  |  4KB  |  213 lines

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