WIN16.MAK
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:10k
源码类别:

Windows编程

开发平台:

Visual C++

  1. #
  2. # WIN16.MAK -- common Win16 macros and rules for MAPI SDK
  3. # derived from (NT)WIN32.MAK in the Win32 SDK
  4. #
  5. #
  6. # =========================================================================
  7. # NTWIN32.MAK - Win32 application master NMAKE definitions file for the
  8. #               Microsoft Win32 SDK for Windows NT programming samples
  9. # -------------------------------------------------------------------------
  10. # This files should be included at the top of all MAKEFILEs as follows:
  11. #  !include <ntwin32.mak>
  12. # -------------------------------------------------------------------------
  13. # NMAKE Options
  14. #
  15. # Use the table below to determine the additional options for NMAKE to
  16. # generate various application debugging, profiling and performance tuning
  17. # information.
  18. #
  19. # Application Information Type         Invoke NMAKE
  20. # ----------------------------         ------------
  21. # For No Debugging Info                nmake nodebug=1
  22. # For Working Set Tuner Info           nmake tune=1
  23. # For Call Attributed Profiling Info   nmake profile=1
  24. #
  25. # Note: Working Set Tuner and Call Attributed Profiling is for available
  26. #       for the Intel x86 and Pentium systems.
  27. #
  28. # Note: The three options above are mutually exclusive (you may use only
  29. #       one to compile/link the application).
  30. #
  31. # Note: creating the environment variables NODEBUG, TUNE, and PROFILE is an
  32. #       alternate method to setting these options via the nmake command line.
  33. #
  34. # Additional NMAKE Options             Invoke NMAKE
  35. # ----------------------------         ------------
  36. # For No ANSI NULL Compliance          nmake no_ansi=1
  37. # (ANSI NULL is defined as PVOID 0)
  38. #
  39. # =========================================================================
  40. !IFNDEF _WIN16_MAK_
  41. _WIN16_MAK_ = 1
  42. # -------------------------------------------------------------------------
  43. # Get CPU Type - exit if CPU environment variable is not defined
  44. # -------------------------------------------------------------------------
  45. # Intel i386, i486, and Pentium systems
  46. CPU = i386
  47. CPUTYPE = 1
  48. # -------------------------------------------------------------------------
  49. # Get Target Operating System - Default to both
  50. # -------------------------------------------------------------------------
  51. TARGETOS = WIN16
  52. # -------------------------------------------------------------------------
  53. # Set Default WINVER - depends on TARGETOS
  54. #
  55. # Defaults to 4.0 for all applications except NT specific.
  56. # -------------------------------------------------------------------------
  57. APPVER = 3.10
  58.     
  59. # binary declarations common to all platforms
  60. cc     = cl
  61. rc     = rc
  62. link   = link
  63. implib = lib
  64. # -------------------------------------------------------------------------
  65. # Platform Dependent Compile Flags - must be specified after $(cc)
  66. #
  67. # Note: Debug switches are on by default for current release
  68. #
  69. # These switches allow for source level debugging with WinDebug for local
  70. # and global variables.
  71. #
  72. # Both compilers now use the same front end - you must still define either
  73. # _X86_, _MIPS_, _PPC_ or _ALPHA_.  These have replaced the i386, MIPS, and ALPHA
  74. # definitions which are not ANSI compliant.
  75. #
  76. # Common compiler flags:
  77. #   -c   - compile without linking
  78. #   -W3  - Set warning level to level 3
  79. #   -Zi  - generate debugging information
  80. #   -Od  - disable all optimizations
  81. #   -Ox  - use maximum optimizations
  82. #   -Zd  - generate only public symbols and line numbers for debugging
  83. #
  84. # i386 specific compiler flags:
  85. #   -Gz  - stdcall
  86. #
  87. # MS MIPS specific compiler flags:
  88. #   none.
  89. #
  90. # -------------------------------------------------------------------------
  91. # declarations common to all compiler options
  92. ccommon = -c -nologo -W3
  93. cflags = $(ccommon) -D_X86_=1 -Zp2 -Gsfy -Gc -Gx- -J
  94. scall  = -Gz
  95. # Generate 286 code -- 386 codegen is too broken
  96. cflags = $(cflags) -G2
  97. INCLUDE = $(MSTOOLS)h;$(INCLUDE)
  98. LIB = $(MSTOOLS)lib;$(LIB)
  99. cflags = $(cflags) -DWIN16 # -D_WIN16
  100. !IF "$(WINVERSION)" != ""
  101. cflags = $(cflags) -DWINVER=$(WINVERSION)
  102. !ELSE
  103. cflags = $(cflags) -DWINVER=0x030A
  104. !ENDIF
  105. !IFDEF NODEBUG
  106. cdebug = -Ox
  107. !ELSE
  108. cdebug = -Z7 -Od -Ob1    # use -Zi for MSVC
  109. !ENDIF
  110. # -------------------------------------------------------------------------
  111. # Target Module & Subsystem Dependent Compile Defined Variables - must be
  112. #   specified after $(cc)
  113. #
  114. # The following table indicates the various acceptable combinations of
  115. # the C Run-Time libraries LIBC, LIBCMT, and CRTDLL respect to the creation
  116. # of a EXE and/or DLL target object.  The appropriate compiler flag macros
  117. # that should be used for each combination are also listed.
  118. #
  119. #  Link EXE    Create Exe    Link DLL    Create DLL
  120. #    with        Using         with         Using
  121. # ----------------------------------------------------
  122. #  LIBC        CVARS          None        None      *
  123. #  LIBC        CVARS          LIBC        CVARS
  124. #  LIBC        CVARS          LIBCMT      CVARSMT
  125. #  LIBCMT      CVARSMT        None        None      *
  126. #  LIBCMT      CVARSMT        LIBC        CVARS
  127. #  LIBCMT      CVARSMT        LIBCMT      CVARSMT
  128. #  CRTDLL      CVARSDLL       None        None      *
  129. #  CRTDLL      CVARSDLL       LIBC        CVARS
  130. #  CRTDLL      CVARSDLL       LIBCMT      CVARSMT
  131. #  CRTDLL      CVARSDLL       CRTDLL      CVARSDLL  *
  132. #
  133. # * - Denotes the Recommended Configuration
  134. #
  135. # When building single-threaded applications you can link your executable
  136. # with either LIBC, LIBCMT, or CRTDLL, although LIBC will provide the best
  137. # performance.
  138. #
  139. # When building multi-threaded applications, either LIBCMT or CRTDLL can
  140. # be used as the C-Runtime library, as both are multi-thread safe.
  141. #
  142. # Note: Any executable which accesses a DLL linked with CRTDLL.LIB must
  143. #       also link with CRTDLL.LIB instead of LIBC.LIB or LIBCMT.LIB.
  144. #       When using DLLs, it is recommended that all of the modules be
  145. #       linked with CRTDLL.LIB.
  146. #
  147. # Note: The macros of the form xDLL are used when linking the object with
  148. #       the DLL version of the C Run-Time (that is, CRTDLL.LIB).  They are
  149. #       not used when the target object is itself a DLL.
  150. #
  151. # -------------------------------------------------------------------------
  152. # for Windows applications that use the C Run-Time libraries
  153. cvars      = -AL -GA -GEs
  154. cvarsdll   = -Al -Alfu -Gd -D_WINDLL -D_DLL
  155. # resource compiler
  156. rcflags = /r
  157. rcvars = -DWIN16 -D_WIN16 $(noansi)
  158. rcvars = $(rcvars) -DWINVER=0x030A
  159. # -------------------------------------------------------------------------
  160. # Platform Dependent Link Flags - must be specified after $(link)
  161. #
  162. # Note: $(DLLENTRY) should be appended to each -entry: flag on the link
  163. #       line.
  164. #
  165. # Note: When creating a DLL that uses C Run-Time functions it is
  166. #       recommended to include the entry point function of the name DllMain
  167. #       in the DLL's source code.  Also, the MAKEFILE should include the
  168. #       -entry:_DllMainCRTStartup$(DLLENTRY) option for the creation of
  169. #       this DLL.  (The C Run-Time entry point _DllMainCRTStartup in turn
  170. #       calls the DLL defined DllMain entry point.)
  171. #
  172. # -------------------------------------------------------------------------
  173. # declarations common to all linker options
  174. lcommon = /NOD /NOE /MAP /ONERROR:NOEXE /NOLOGO
  175. # declarations for use on Intel i386, i486, and Pentium systems
  176. lflags   = $(lcommon)
  177. # -------------------------------------------------------------------------
  178. # Target Module Dependent Link Debug Flags - must be specified after $(link)
  179. #
  180. # These switches allow the inclusion of the necessary symbolic information
  181. # for source level debugging with WinDebug, profiling and/or performance
  182. # tuning.
  183. #
  184. # Note: Debug switches are on by default.
  185. # -------------------------------------------------------------------------
  186. !IFDEF NODEBUG
  187. ldebug = 
  188. !ELSE
  189. ldebug = /CO
  190. !ENDIF
  191. # -------------------------------------------------------------------------
  192. # Subsystem Dependent Link Flags - must be specified after $(link)
  193. #
  194. # These switches allow for source level debugging with WinDebug for local
  195. # and global variables.  They also provide the standard application type and
  196. # entry point declarations.
  197. # -------------------------------------------------------------------------
  198. # for Windows applications that use the C Run-Time libraries
  199. conlflags = $(lflags) 
  200. guilflags = $(lflags) 
  201. dlllflags = $(lflags) # -dll
  202. # -------------------------------------------------------------------------
  203. # C Run-Time Target Module Dependent Link Libraries
  204. #
  205. # Below is a table which describes which libraries to use depending on the
  206. # target module type, although the table specifically refers to Graphical
  207. # User Interface apps, the exact same dependencies apply to Console apps.
  208. # That is, you could replace all occurrences of 'GUI' with 'CON' in the
  209. # following:
  210. #
  211. # Desired CRT  Libraries   Desired CRT  Libraries
  212. #   Library     to link      Library     to link
  213. #   for EXE     with EXE     for DLL     with DLL
  214. # ----------------------------------------------------
  215. #   LIBC       GUILIBS       None       None       *
  216. #   LIBC       GUILIBS       LIBC       GUILIBS
  217. #   LIBC       GUILIBS       LIBCMT     GUILIBSMT
  218. #   LIBCMT     GUILIBSMT     None       None       *
  219. #   LIBCMT     GUILIBSMT     LIBC       GUILIBS
  220. #   LIBCMT     GUILIBSMT     LIBCMT     GUILIBSMT
  221. #   CRTDLL     GUILIBSDLL    None       None       *
  222. #   CRTDLL     GUILIBSDLL    LIBC       GUILIBS
  223. #   CRTDLL     GUILIBSDLL    LIBCMT     GUILIBSMT
  224. #   CRTDLL     GUILIBSDLL    CRTDLL     GUILIBSDLL *
  225. #
  226. # * - Recommended Configurations.
  227. #
  228. # Note: Any executable which accesses a DLL linked with CRTDLL.LIB must
  229. #       also link with CRTDLL.LIB instead of LIBC.LIB or LIBCMT.LIB.
  230. #
  231. # -------------------------------------------------------------------------
  232. # These CRT Libraries assume the use of Microsoft Visual C++ 1.5
  233. # If you are using another Compiler product, change the libc* 
  234. # variable to correspond to your import library names.
  235. # for Windows applications that use the C Run-Time libraries
  236. conlibs    = oldnames.lib llibce.lib
  237. guilibs    = commdlg.lib oldnames.lib libw.lib llibcew.lib
  238. guilibsdll = commdlg.lib oldnames.lib libw.lib ldllcew.lib
  239. # for OLE applications
  240. olelibs      = compobj.lib ole2.lib ole2disp.lib $(guilibs)
  241. olelibsmt    = compobj.lib ole2.lib ole2disp.lib $(guilibsmt)
  242. olelibsdll   = compobj.lib ole2.lib ole2disp.lib $(guilibsdll)
  243. #ENDIF _WIN16_MAK_
  244. !ENDIF