home *** CD-ROM | disk | FTP | other *** search
/ Supercompiler 1997 / SUPERCOMPILER97.iso / MS_VC.50 / VC / MFC / SRC / MFCDLL.MAK < prev    next >
Encoding:
Text File  |  1996-12-12  |  6.0 KB  |  257 lines

  1. # This is a part of the Microsoft Foundation Classes C++ library.
  2. # Copyright (C) 1992-1997 Microsoft Corporation
  3. # All rights reserved.
  4. #
  5. # This source code is only intended as a supplement to the
  6. # Microsoft Foundation Classes Reference and related
  7. # electronic documentation provided with the library.
  8. # See these sources for detailed information regarding the
  9. # Microsoft Foundation Classes product.
  10.  
  11. # MFC42[D].DLL is a DLL
  12. #  which exports all the MFC classes
  13. #
  14. # If you need a private build of the MFC DLL, be sure to rename
  15. #  "MFC42.DLL" to something more appropriate for your application.
  16. # Please do not re-distribute a privately built version with the
  17. #  name "MFC42.DLL".
  18. #
  19. # Use nmake /f mfcdll.mak LIBNAME=<your name> to do this.
  20. #
  21. # Note: LIBNAME must be 6 characters or less.
  22.  
  23. !ifndef LIBNAME
  24. !error LIBNAME is not defined. LIBNAME=MFC42 builds the prebuilt DLL.
  25. !endif
  26.  
  27. !if "$(DEBUG)" != "0"
  28. CRTDLL=msvcrtd.lib
  29. !else
  30. CRTDLL=msvcrt.lib
  31. !endif
  32.  
  33. TARGET=w
  34. DLL=2
  35. TARGDEFS=/D_AFX_CORE_IMPL
  36. LFLAGS=/nodefaultlib
  37. RCFLAGS=/r
  38.  
  39. !if "$(UNICODE)" == "1"
  40. TARGTYPE=U
  41. RCDEFINES=$(RCDEFINES) /D_UNICODE
  42. !endif
  43.  
  44. !if "$(PLATFORM)" == "M68K"
  45. PF=M
  46. CRTDLL=msvcrt.lib
  47. !ifndef MONOLITHIC
  48. MONOLITHIC=0
  49. !endif
  50. !elseif "$(PLATFORM)" == "MPPC"
  51. PF=P
  52. !ifndef MONOLITHIC
  53. MONOLITHIC=0
  54. !endif
  55. !endif
  56.  
  57. !if "$(DEBUG)" != "0"
  58. # Debug DLL build
  59. TARGTYPE=$(TARGTYPE)D
  60. RCDEFINES=$(RCDEFINES) /D_DEBUG
  61. LFLAGS=$(LFLAGS)
  62. !ifndef MONOLITHIC
  63. MONOLITHIC=0
  64. !endif
  65. !ELSE
  66. # Release DLL build
  67. RCDEFINES=$(RCDEFINES)
  68. LFLAGS=$(LFLAGS)
  69. !ifndef MONOLITHIC
  70. MONOLITHIC=1
  71. !endif
  72. !ENDIF
  73.  
  74. !if "$(MONOLITHIC)" == "1"
  75. TARGDEFS=$(TARGDEFS) /D_AFX_OLE_IMPL /D_AFX_DB_IMPL /D_AFX_NET_IMPL
  76. RCDEFINES=$(RCDEFINES) /D_AFX_MONOLITHIC
  77. !endif
  78.  
  79. CFNAME=$(LIBNAME)$(TARGTYPE)
  80. TARG=$(LIBNAME)$(PF)$(TARGTYPE)
  81. TARG_STATIC=MFCS42$(PF)$(TARGTYPE)
  82.  
  83. # OPT:noref keeps unreferenced functions (ie. no dead-code elimination)
  84. !if "$(REGEN)" == "0"
  85. LFLAGS=$(LFLAGS) /opt:ref
  86. !else
  87. LFLAGS=$(LFLAGS) /opt:noref
  88. !endif
  89.  
  90. DEFFILE=$(PLATFORM)\$(TARG).DEF
  91.  
  92. !if "$(DEBUGTYPE)" == ""
  93. DEBUGTYPE=cv,fixup
  94. !endif
  95.  
  96. !if "$(CODEVIEW)" != "0"
  97. !if "$(REGEN)" != "1"
  98. LFLAGS=$(LFLAGS) /debug:full /debugtype:$(DEBUGTYPE)
  99. !else
  100. LFLAGS=$(LFLAGS) /debug:none
  101. !endif
  102. !if "$(NO_PDB)" != "1" && "$(REGEN)" != "1"
  103. LFLAGS=$(LFLAGS) /pdb:$(TARG).pdb
  104. !else
  105. LFLAGS=$(LFLAGS) /pdb:none
  106. !endif
  107. !else
  108. LFLAGS=$(LFLAGS) /debug:none
  109. !if "$(INCREMENTAL)" != "1"
  110. LFLAGS=$(LFLAGS) /incremental:no
  111. !endif
  112. !endif
  113.  
  114. !ifdef RELEASE # Release VERSION info
  115. RCDEFINES=$(RCDEFINES) /DRELEASE
  116. LFLAGS=$(LFLAGS) /release
  117. !endif
  118.  
  119. LFLAGS=$(LFLAGS) /dll
  120.  
  121. !if "$(ORDER)" == "1"
  122. !if exist($(PLATFORM)\$(TARG).prf)
  123. DEFS=$(DEFS) /D_AFX_FUNCTION_ORDER
  124. LFLAGS=$(LFLAGS) /order:@$(PLATFORM)\$(TARG).prf
  125. !endif
  126. !endif
  127.  
  128. !if "$(PLATFORM)" == "PPC"
  129. LIBS=$(LIBS) int64.lib /force:multiple
  130. !endif
  131.  
  132. dll_goal: create2.dir \
  133.     $(TARG).dll ..\lib\$(TARG).lib ..\lib\$(TARG_STATIC).lib
  134.  
  135. #############################################################################
  136. # import most rules and library files from normal makefile
  137.  
  138. !include makefile
  139.  
  140. create2.dir:
  141.     @-if not exist $D\*.* mkdir $D
  142.  
  143. #############################################################################
  144. # more flags and switches
  145.  
  146. !ifndef MACOS
  147. LFLAGS=$(LFLAGS) /version:4.21
  148. !if "$(UNICODE)" == "1"
  149. LFLAGS=$(LFLAGS) /base:0x5F800000
  150. !else
  151. LFLAGS=$(LFLAGS) /base:0x5F400000
  152. !endif
  153. LIBS=$(CRTDLL) kernel32.lib gdi32.lib user32.lib uuid.lib daouuid.lib $(PROFLIB)
  154. !else
  155. !if "$(BASE)" == "M68K"
  156. !error DLL build is not supported for 68K Macintosh
  157. !endif
  158.  
  159. LFLAGS=$(LFLAGS) /mac:nomfilepad
  160. RCFLAGS=$(RCFLAGS) /m
  161.  
  162. !if "$(DEBUG)" != "0"
  163. LIBS=msvcwlmd.lib
  164. !else
  165. LIBS=msvcwlm.lib
  166. !endif
  167.  
  168. LIBS=uuid.lib $(CRTDLL) $(LIBS) interfac.lib
  169. !endif
  170.  
  171. #############################################################################
  172.  
  173. STATICLINK_OBJS=$D\stdafx.obj $D\nolib.obj \
  174.     $D\appmodul.obj $D\dllmodul.obj $D\oleexp.obj
  175.  
  176. CPPFLAGS_STATIC=\
  177.     $(CL_MODEL) $(CL_OPT) $(DEFS) $(OPT) $(EH) /Gy /Fd..\lib\$(TARG_STATIC).pdb
  178.  
  179. PCH_TARGET=$D\stdafx.obj
  180.  
  181. $D\stdafx.obj $D\stdafxs.pch: stdafx.cpp stdafx.h
  182.     cl @<<
  183. /c $(CPPFLAGS_STATIC) /Ycstdafx.h /Fp$D\stdafxs.pch stdafx.cpp
  184. <<
  185.  
  186. $D\appmodul.obj: $D\stdafx.obj appmodul.cpp
  187.     cl @<<
  188. /c $(CPPFLAGS_STATIC) /Yustdafx.h /Fp$D\stdafxs.pch appmodul.cpp
  189. <<
  190.  
  191. $D\dllmodul.obj: $D\stdafx.obj dllmodul.cpp
  192.     cl @<<
  193. /c $(CPPFLAGS_STATIC) /Yustdafx.h /Fp$D\stdafxs.pch dllmodul.cpp
  194. <<
  195.  
  196. $D\oleexp.obj: $D\stdafx.obj oleexp.cpp
  197.     cl @<<
  198. /c $(CPPFLAGS_STATIC) /Yustdafx.h /Fp$D\stdafxs.pch oleexp.cpp
  199. <<
  200.  
  201. $D\nolib.obj: $D\stdafx.obj nolib.cpp
  202.     cl @<<
  203. /c $(CPPFLAGS_STATIC) /Yustdafx.h /Fp$D\stdafxs.pch nolib.cpp
  204. <<
  205.  
  206. #############################################################################
  207. # Build target
  208.  
  209. $D\$(TARG).res: mfcdll.rc build_.h
  210.     rc $(RCFLAGS) $(RCDEFINES) /fo $D\$(TARG).res mfcdll.rc
  211. !ifdef MACOS
  212.     mrc /DRESFILE=\"$@\" /o $@ attribut.r
  213. !endif
  214.  
  215. $D\$(TARG).rsc: mfcdll.r
  216.     mrc /DARCHITECTURE=$(MACOS_ARCH) /DLIBNAME=\"Microsoft$(CFNAME)Lib\" \
  217.         /DJDATE=$(JULIAN) /DJDATESTR=\"$(JULIAN)\" \
  218.         /DCURRENTVER=0x04008000 /DOLDDEFVER=0x04008000 \
  219.         /o $D\$(TARG).rsc mfcdll.r
  220.  
  221. DLL_OBJS=$(OBJECT) $(OBJDIAG) $(INLINES) $(FILES) $(COLL1) $(COLL2) $(MISC) \
  222.     $(WINDOWS) $(DIALOG) $(WINMISC) $(DOCVIEW) $(APPLICATION) $(OLEREQ) \
  223.     $(INTERNET)
  224.  
  225. !if "$(MONOLITHIC)" == "1"
  226. DLL_OBJS=$(DLL_OBJS) $(SOCKETS) $(OLEDLL) $(DAO) $(DB)
  227. !endif
  228.  
  229. DLL_OBJS=$(DLL_OBJS) $D\dllinit.obj
  230.  
  231. DLL_RESOURCES=$D\$(TARG).res
  232. !ifdef MACOS
  233. DLL_RESOURCES=$(DLL_RESOURCES) $D\$(TARG).rsc
  234. !endif
  235.  
  236. $(TARG).dll ..\lib\$(TARG).lib: $(DLL_OBJS) $(DEFFILE) $(DLL_RESOURCES)
  237.     link @<<
  238. $(LFLAGS)
  239. $(LIBS)
  240. $(DLL_OBJS)
  241. $(DLL_RESOURCES)
  242. /def:$(DEFFILE)
  243. /out:$(TARG).DLL
  244. /map:$D\$(TARG).MAP
  245. /implib:..\lib\$(TARG).LIB
  246. !ifdef MACOS
  247. /mac:type=shlb /mac:creator=cfmg
  248. /mac:init=WlmConnectionInit
  249. /import:currentver=67141632,oldcodever=67141632,oldapiver=67141632
  250. !endif
  251. <<
  252.  
  253. ..\lib\$(TARG_STATIC).lib: $(STATICLINK_OBJS)
  254.     lib /out:$@ $(STATICLINK_OBJS)
  255.  
  256. #############################################################################
  257.