Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

354 lines
7.4 KiB

4 years ago
  1. ##############################################################################
  2. #
  3. # (c) Copyright Microsoft Corp. 1992-1994 All Rights Reserved
  4. #
  5. # File:
  6. #
  7. # makefile - makefile for dispcalc.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 | mac] ; dev=win16 is the default
  22. # CPU = [i386 | M68K | MIPS | ALPHA | PPC]
  23. # DEBUG=[0|1] ; DEBUG=1 is the default
  24. #
  25. # Notes:
  26. #
  27. # This makefile assumes that the CPU, PATH, INCLUDE and LIB environment
  28. # variables are setup properly.
  29. #
  30. ##############################################################################
  31. ##########################################################################
  32. #
  33. # Default Settings
  34. #
  35. !if "$(dev)" == ""
  36. dev = win16
  37. !endif
  38. !if !("$(dev)" == "win16" || "$(dev)" == "win32" || "$(dev)" == "mac")
  39. !error Invalid dev option, choose from [win16 | win32 | mac]
  40. !endif
  41. !if "$(dev)" == "win16"
  42. TARGET = WIN16
  43. !endif
  44. !if "$(dev)" == "win32"
  45. TARGET = WIN32
  46. !endif
  47. !if "$(dev)" == "mac"
  48. TARGET = MAC
  49. !endif
  50. !if "$(DEBUG)" == ""
  51. DEBUG = 1
  52. !endif
  53. ##########################################################################
  54. #
  55. # WIN16 Settings
  56. #
  57. !if "$(TARGET)" == "WIN16"
  58. CC = cl
  59. LINK = link
  60. RCFLAGS = -dWIN16
  61. CFLAGS = -W3 -AM -GA -GEs -DWIN16
  62. LINKFLAGS = /NOD /NOI /BATCH /ONERROR:NOEXE
  63. LIBS = libw.lib mlibcew.lib
  64. !if "$(DEBUG)" == "1"
  65. CFLAGS = $(CFLAGS) -Od -Zi -D_DEBUG $(CL)
  66. LINKFLAGS = $(LINKFLAGS) /COD
  67. !else
  68. CFLAGS = $(CFLAGS) -Ox $(CL)
  69. LINKFLAGS = $(LINKFLAGS) /FAR /PACKC
  70. !endif
  71. !endif
  72. ##########################################################################
  73. #
  74. # WIN32 Settings
  75. #
  76. !if "$(TARGET)" == "WIN32"
  77. !if "$(CPU)"==""
  78. !if "$(PROCESSOR_ARCHITECTURE)"=="" || "$(PROCESSOR_ARCHITECTURE)"=="x86"
  79. CPU=i386
  80. !else
  81. CPU=$(PROCESSOR_ARCHITECTURE)
  82. !endif
  83. !endif #CPU
  84. !if "$(CPU)" == "i386"
  85. CC = cl386
  86. LINK = link
  87. CFLAGS = -D_X86_=1
  88. !endif
  89. !if "$(CPU)" == "MIPS"
  90. CC = cl
  91. LINK = link
  92. CFLAGS = -D_MIPS_=1 -DUNICODE
  93. !endif
  94. !if "$(CPU)" == "ALPHA"
  95. CC = claxp
  96. LINK = link
  97. CFLAGS = -D_ALPHA_=1 -DUNICODE
  98. !endif
  99. !if "$(CPU)" == "PPC"
  100. CC = cl
  101. LINK = link
  102. CFLAGS = -D_PPC_=1 -DUNICODE
  103. !endif
  104. RCFLAGS = -dWIN32
  105. CFLAGS = $(CFLAGS) -nologo -W3 -DWIN32 -DINC_OLE2 -D_MT $(CL)
  106. LINKFLAGS = -Incremental:NO -Pdb:NONE -subsystem:windows -entry:WinMainCRTStartup -machine:$(CPU)
  107. LIBS = libc.lib kernel32.lib user32.lib
  108. !if "$(DEBUG)" == "1"
  109. CFLAGS = $(CFLAGS) -Od -Z7 -D_DEBUG $(CL)
  110. LINKFLAGS = -debug:full -debugtype:cv,coff $(LINKFLAGS)
  111. !else
  112. CFLAGS = $(CFLAGS) -Ox
  113. !endif
  114. !endif
  115. ##########################################################################
  116. #
  117. # MAC Settings
  118. #
  119. !if "$(TARGET)" == "MAC"
  120. CC = cl
  121. LINK = link
  122. RCFLAGS = -d_MAC
  123. !if "$(CPU)"=="PPC"
  124. CFLAGS = -W3 -D_MAC -D_PPCMAC -D_pascal= -D__pascal=
  125. LIBS = interfac.lib libc.lib ole2.lib ole2auto.lib
  126. LINKFLAGS = -machine:mppc -ENTRY:mainCRTStartup -NOPACK -NODEFAULTLIB
  127. !else
  128. LIBS = interfac.lib llibcs.lib lsanes.lib swap.lib
  129. CFLAGS = -W3 -AL -D_MAC
  130. LINKFLAGS = -machine:$(CPU) -ENTRY:mainCRTStartup -NOPACK -NODEFAULTLIB
  131. !endif
  132. !if "$(DEBUG)" == "1"
  133. CFLAGS = $(CFLAGS) -Od -Zi -D_DEBUG $(CL)
  134. LINKFLAGS = $(LINKFLAGS) -debug:full -debugtype:cv
  135. !else
  136. CFLAGS = $(CFLAGS) -Ox $(CL)
  137. !endif
  138. MRC = mrc
  139. !if "$(CPU)"=="PPC"
  140. MRCOPT = -D_PPCMAC -s$(VBATOOLS)\win32\ppc\lib
  141. !else
  142. MRCOPT =
  143. !endif
  144. MAKEPEF = makepef
  145. !endif
  146. ##########################################################################
  147. #
  148. # Application Settings
  149. #
  150. APPS = dispcalc
  151. SRCDIR = $(OLEPROG)\SAMPLE\$(APPS)
  152. !if "$(TARGET)" == "MAC" && "$(CPU)"=="PPC"
  153. OBJDIR=$(SRCDIR)\macppc
  154. !else
  155. OBJDIR=$(SRCDIR)\$(TARGET)
  156. !endif
  157. !if [if not exist $(OBJDIR)\*.* mkdir $(OBJDIR)] != 0
  158. !endif
  159. !if "$(TARGET)" == "WIN16"
  160. LIBS = ole2.lib compobj.lib ole2disp.lib $(LIBS)
  161. !endif
  162. !if "$(TARGET)" == "WIN32"
  163. LIBS = ole32.lib oleaut32.lib uuid.lib $(LIBS)
  164. !endif
  165. !if "$(TARGET)" == "MAC"
  166. !if "$(CPU)"=="m68k"
  167. LIBS = olenrf.obj oanrf.obj $(LIBS)
  168. !endif
  169. !endif
  170. OBJS = \
  171. !if "$(TARGET)" == "MAC"
  172. $(OBJDIR)\macmain.obj \
  173. !else
  174. $(OBJDIR)\winmain.obj \
  175. !endif
  176. $(OBJDIR)\idata.obj \
  177. $(OBJDIR)\dispcalc.obj \
  178. $(OBJDIR)\clsid.obj
  179. ##########################################################################
  180. #
  181. # Build rules
  182. #
  183. {$(SRCDIR)}.cpp{$(OBJDIR)}.obj:
  184. @echo Compiling $<...
  185. $(CC) -c -Fo$@ $<
  186. {$(SRCDIR)}.c{$(OBJDIR)}.obj:
  187. @echo Compiling $<...
  188. $(CC) -c -Fo$@ $<
  189. ##########################################################################
  190. #
  191. # Default Goal
  192. #
  193. goal : setflags $(OBJDIR)\$(APPS).exe
  194. setflags :
  195. set CL=$(CFLAGS)
  196. ##########################################################################
  197. #
  198. # Clean (erase) generated files
  199. #
  200. clean :
  201. if exist $(OBJDIR)\*.obj del $(OBJDIR)\*.obj
  202. if exist $(OBJDIR)\$(APPS).exe del $(OBJDIR)\$(APPS).exe
  203. if exist $(OBJDIR)\$(APPS).map del $(OBJDIR)\$(APPS).map
  204. if exist $(OBJDIR)\$(APPS).res del $(OBJDIR)\$(APPS).res
  205. if exist $(OBJDIR)\$(APPS).rs del $(OBJDIR)\$(APPS).rs
  206. ##########################################################################
  207. #
  208. # Application Build (WIN16 Specific)
  209. #
  210. !if "$(TARGET)" == "WIN16"
  211. $(OBJDIR)\$(APPS).exe : $(OBJS) $(SRCDIR)\$(APPS).def $(OBJDIR)\$(APPS).res $(SRCDIR)\$(APPS).ico
  212. link $(LINKFLAGS) @<<
  213. $(OBJS),
  214. $@,$(OBJDIR)\$(APPS).map/map,
  215. $(LIBS),
  216. $(SRCDIR)\$(APPS).def
  217. <<
  218. rc -k -t $(OBJDIR)\$(APPS).res $@
  219. !endif
  220. ##########################################################################
  221. #
  222. # Application Build (WIN32 Specific)
  223. #
  224. !if "$(TARGET)" == "WIN32"
  225. $(OBJDIR)\$(APPS).exe : $(OBJS) $(SRCDIR)\$(APPS).def $(OBJDIR)\$(APPS).res $(SRCDIR)\$(APPS).ico
  226. cvtres -r -$(CPU) $(OBJDIR)\$(APPS).res -o $(OBJDIR)\$(APPS).rs
  227. $(LINK) @<<
  228. $(LINKFLAGS)
  229. -out:$@
  230. -map:$*.map
  231. $(OBJS)
  232. $(OBJDIR)\$(APPS).rs
  233. $(LIBS)
  234. <<
  235. !endif
  236. ##########################################################################
  237. #
  238. # Application Build (MAC Specific)
  239. #
  240. !if "$(TARGET)" == "MAC"
  241. $(OBJDIR)\$(APPS).exe : $(OBJS) $(OBJDIR)\$(APPS).x
  242. $(LINK) @<<
  243. $(LINKFLAGS)
  244. -out:$@
  245. -map:$*.map
  246. $(OBJS)
  247. $(LIBS)
  248. <<
  249. copy $(OBJDIR)\$(APPS).x $(OBJDIR)\$(APPS)
  250. !if "$(CPU)"=="PPC"
  251. $(MAKEPEF) $(OBJDIR)\$(APPS).exe $(OBJDIR)\$(APPS).pef
  252. !else
  253. cvpack $(OBJDIR)\$(APPS).exe
  254. $(MRC) $(MRCOPT) -e $(OBJDIR)\$(APPS).exe -a -o $(OBJDIR)\$(APPS)
  255. !endif
  256. $(OBJDIR)\$(APPS).x: $(SRCDIR)\$(APPS).r
  257. $(MRC) $(MRCOPT) -D_MAC -o $(OBJDIR)\$(APPS).x $(SRCDIR)\$(APPS).r
  258. !endif
  259. ##########################################################################
  260. #
  261. # Application Build (Common)
  262. #
  263. !if "$(TARGET)" != "MAC"
  264. $(OBJDIR)\$(APPS).res : $(SRCDIR)\$(APPS).rc
  265. rc $(RCFLAGS) -r -fo$@ $?
  266. !endif
  267. ##########################################################################
  268. #
  269. # Dependencies
  270. #
  271. !if "$(TARGET)" == "MAC"
  272. $(OBJDIR)\macmain.obj: $(SRCDIR)\macmain.cpp $(SRCDIR)\dispcalc.h
  273. $(CC) -c -Fo$@ $(SRCDIR)\macmain.cpp
  274. !else
  275. $(OBJDIR)\winmain.obj: $(SRCDIR)\winmain.cpp $(SRCDIR)\dispcalc.h
  276. $(CC) -c -Fo$@ $(SRCDIR)\winmain.cpp
  277. !endif
  278. $(OBJDIR)\idata.obj: $(SRCDIR)\idata.cpp $(SRCDIR)\dispcalc.h
  279. $(CC) -c -Fo$@ $(SRCDIR)\idata.cpp
  280. $(OBJDIR)\dispcalc.obj: $(SRCDIR)\dispcalc.cpp $(SRCDIR)\dispcalc.h
  281. $(CC) -c -Fo$@ $(SRCDIR)\dispcalc.cpp
  282. $(OBJDIR)\clsid.obj: $(SRCDIR)\clsid.c $(SRCDIR)\clsid.h
  283. $(CC) -c -Fo$@ $(SRCDIR)\clsid.c