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 / lines / makefile < prev    next >
Makefile  |  1997-11-19  |  6KB  |  260 lines

  1. ####
  2. #makefile - makefile for lines.exe
  3. #
  4. #       Copyright (C) 1994, Microsoft Corporation
  5. #
  6. #Purpose:
  7. #  Builds the OLE 2.0 Automation object, lines.exe.
  8. #  By default a 32 bit ANSI application 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. ##########################################################################
  31. #
  32. # Default Settings
  33.  
  34. # Change the following dev & HOST settings to compile lines for 16 bit, 
  35. # 32 bit Unicode on NT or 32 bit ANSI on NT & Win95
  36.  
  37. !if "$(dev)" == ""
  38. dev = win32 
  39. HOST = WIN95
  40. !endif
  41.  
  42. !if !("$(dev)" == "win16" || "$(dev)" == "win32")
  43. !error Invalid dev option, choose from [win16 | win32]
  44. !endif
  45.  
  46. !if "$(dev)" == "win16"
  47. TARGET  = WIN16
  48. !if "$(HOST)" == ""
  49. HOST  = DOS
  50. !endif
  51. !endif
  52.  
  53. !if "$(dev)" == "win32"
  54. TARGET  = WIN32
  55. !if "$(HOST)" == ""
  56. HOST  = WIN95
  57. !endif
  58. !endif
  59.  
  60. !undef NODEBUG
  61.  
  62. !if "$(DEBUG)" == "0"
  63. NODEBUG = 1
  64. !endif
  65.  
  66.  
  67. ##########################################################################
  68. #
  69. # WIN16 Settings
  70. #
  71. !if "$(TARGET)" == "WIN16"
  72.  
  73. CC   = cl
  74. LINK = link
  75. !if "$(HOST)" == "DOS"
  76. WX   = wx /w 
  77. !else
  78. WX   =
  79. !endif
  80.  
  81. TLIBCOMPILER = $(WX) mktyplib
  82.  
  83. RCFLAGS = -dWIN16
  84. CFLAGS = -c -W3 -AM -GA -GEs -DWIN16
  85. LINKFLAGS = /NOD /NOI /BATCH /ONERROR:NOEXE
  86.  
  87. LIBS = libw.lib mlibcew.lib
  88.  
  89. !ifdef NODEBUG
  90. CFLAGS = $(CFLAGS) -Ox $(CL)
  91. LINKFLAGS = $(LINKFLAGS) /FAR /PACKC
  92. !else
  93. CFLAGS = $(CFLAGS) -Od -Zi -D_DEBUG $(CL)
  94. LINKFLAGS = $(LINKFLAGS) /COD
  95. !endif
  96. !endif
  97.  
  98.  
  99. ##########################################################################
  100. #
  101. # WIN32 Settings
  102. #
  103. !if "$(TARGET)" == "WIN32"
  104.  
  105.  
  106. WX =
  107. TLIBCOMPILER = MIDL /mktyplib203  
  108.  
  109. !include <olesampl.mak>
  110.  
  111. CC = $(cc)
  112. CFLAGS = $(cflags) $(cvarsmt) -DINC_OLE2 $(cdebug)
  113.  
  114. !if "$(HOST)" == "NT"
  115. CFLAGS = $(CFLAGS) -DUNICODE
  116. !endif
  117.  
  118. !ifdef NODEBUG
  119. !else
  120. CFLAGS = $(CFLAGS) -D_DEBUG
  121. !endif
  122.  
  123. LINK = $(link)
  124. LINKFLAGS = $(linkdebug) $(guilflags)
  125. RCFLAGS = -DWIN32
  126.  
  127. !endif
  128.  
  129. ##########################################################################
  130. #
  131. # Build rules
  132. #
  133.  
  134. .cpp.obj:
  135.     @echo Compiling $<...
  136.     $(CC) $<
  137.  
  138. .c.obj:
  139.     @echo Compiling $<...
  140.     $(CC) $<
  141.  
  142.  
  143. ##########################################################################
  144. #
  145. # Application Settings
  146. #
  147. APPS = lines
  148.  
  149. !if "$(TARGET)" == "WIN16"
  150. LIBS = ole2.lib compobj.lib ole2disp.lib typelib.lib commdlg.lib $(LIBS)
  151. !endif
  152. !if "$(TARGET)" == "WIN32"
  153. LIBS = $(ole2libsmt)
  154. !endif
  155.  
  156. OBJS = main.obj app.obj appcf.obj pane.obj line.obj point.obj lines.obj points.obj \
  157.        enumvar.obj errinfo.obj
  158.  
  159.  
  160. ##########################################################################
  161. #
  162. # Default Goal
  163. #
  164.  
  165. goal : setflags $(APPS).exe
  166.  
  167. setflags :
  168.     set CL=$(CFLAGS)
  169.  
  170.  
  171. ##########################################################################
  172. #
  173. # Application Build (WIN16 Specific)
  174. #
  175.  
  176. !if "$(TARGET)" == "WIN16"
  177. $(APPS).exe : $(APPS).tlb $(OBJS) $(APPS).def $(APPS).res  
  178.     link $(LINKFLAGS) @<<
  179. $(OBJS),
  180. $@,,
  181. $(LIBS),
  182. $(APPS).def
  183. <<
  184.     rc -k -t $(APPS).res $@
  185. !endif
  186.  
  187.  
  188. ##########################################################################
  189. #
  190. # Application Build (WIN32 Specific)
  191. #
  192. !if "$(TARGET)" == "WIN32"
  193. $(APPS).exe : $(APPS).tlb $(OBJS) $(APPS).def $(APPS).res
  194.       $(LINK) @<< 
  195.         $(LINKFLAGS)
  196.         -out:$@ 
  197.         -map:$*.map
  198.         $(OBJS)
  199.         $(APPS).res
  200.         $(LIBS)
  201. <<
  202. !endif
  203.     
  204.  
  205. ##########################################################################
  206. #
  207. # Application Build (Common)
  208. #
  209.  
  210. $(APPS).res : $(APPS).rc
  211.     rc $(RCFLAGS) -r -fo$@ $?
  212.  
  213.  
  214. ##########################################################################
  215. #
  216. # Dependencies
  217. #
  218.  
  219. lines.tlb : lines.odl
  220.      if exist tlb.h  del tlb.h
  221.      if exist lines.tlb  del lines.tlb
  222.      $(TLIBCOMPILER) /D$(TARGET) /h tlb.h /o lines.log /tlb lines.tlb lines.odl
  223.      type lines.log
  224.  
  225. main.obj : main.cpp lines.h tlb.h
  226.      $(CC) main.cpp     
  227. app.obj : app.cpp lines.h tlb.h
  228.      $(CC) app.cpp
  229. appcf.obj : appcf.cpp lines.h tlb.h
  230.      $(CC) appcf.cpp
  231. pane.obj : pane.cpp lines.h tlb.h
  232.      $(CC) pane.cpp     
  233. line.obj : line.cpp lines.h tlb.h
  234.      $(CC) line.cpp
  235. point.obj : point.cpp lines.h tlb.h
  236.      $(CC) point.cpp
  237. lines.obj : lines.cpp lines.h tlb.h
  238.      $(CC) lines.cpp
  239. points.obj : points.cpp lines.h tlb.h
  240.      $(CC) points.cpp
  241. enumvar.obj : enumvar.cpp lines.h tlb.h
  242.      $(CC) enumvar.cpp 
  243. errinfo.obj : errinfo.cpp lines.h tlb.h
  244.      $(CC) errinfo.cpp
  245.  
  246.  
  247.  
  248.  
  249. ##########################################################################
  250. #
  251. # Clean (erase) generated files
  252. #
  253. clean :
  254.     if exist *.obj       del *.obj
  255.     if exist $(APPS).map del $(APPS).map
  256.     if exist $(APPS).res del $(APPS).res
  257.     if exist *.log       del *.log
  258.     if exist *.pdb       del *.pdb
  259.