Source code of Windows XP (NT5)
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.

431 lines
9.7 KiB

  1. ##########################################################################
  2. #
  3. # Microsoft Confidential
  4. # Copyright (C) Microsoft Corporation 1997-1999
  5. # All Rights Reserved.
  6. #
  7. ##########################################################################
  8. #
  9. # Common include file 'sources' files in the imagein project.
  10. #
  11. #
  12. # These definitions are required in your sources file:
  13. #
  14. # FREEBUILD
  15. # Set by makefile.def file for you. One of the following:
  16. # 0 - build debug
  17. # 1 - build retail
  18. #
  19. # Definitions used if defined:
  20. #
  21. # CHICAGO_PRODUCT
  22. # Build component explicitly for the Win95 platform. If this is
  23. # not defined, default is NT or both.
  24. #
  25. # TARGET_BOTH
  26. # Build component to run on both platforms.
  27. #
  28. # NO_PRIVATE_HEADERS
  29. # If set to 1, this is defined as a manifest constant, so the
  30. # stub headers in shell\inc\stubs do not include the private
  31. # companion headers.
  32. #
  33. # Environment Variables and their meanings
  34. #
  35. # ATL_DEBUG_QI
  36. # When set to 1, debug builds will also have _ATL_DEBUG_QI
  37. # defined. ATL code spews a bunch of debug stuff during QueryInterface.
  38. #
  39. # ATL_DEBUG_REFCOUNT
  40. # When set to 1, debug builds will also have _ATL_DEBUG_REFCOUNT
  41. # defined. ATL code spews a bunch of debug stuff during AddRef
  42. # and Release.
  43. #
  44. # MAXDEBUG
  45. # If set to 1, then debug builds will also have MAXDEBUG defined.
  46. # Retail builds unaffected. This is highly encouraged for regular
  47. # development purposes. Not to be set or used by the build labs.
  48. #
  49. # MEASURE_PERF
  50. # If set to 1, enables performance timing code for both debug and
  51. # retail builds. This code squirts the timings for interesting
  52. # events to the debug terminal.
  53. #
  54. #
  55. # As this include file is used only for user mode windows components - set
  56. # components IDs appropriately
  57. #
  58. MAJORCOMP=windows
  59. MINORCOMP=imagein
  60. WIN32_IE_VERSION=0x0500
  61. #
  62. # Set up related directories
  63. #
  64. !IFNDEF WDMROOT
  65. #remove WDMROOT=$(BASEDIR)\private\ntos\dd\wdm
  66. !ENDIF
  67. !IFNDEF SCANCAMDIR
  68. #remove SCANCAMDIR=$(WDMROOT)\scancam
  69. !ENDIF
  70. !IF "$(BUILD_PRODUCT)"=="millen"
  71. CHICAGO_PRODUCT=1
  72. !ENDIF
  73. #
  74. # Set private paths
  75. #
  76. WIA_INC_PATH=$(PROJECT_ROOT)\wia\inc
  77. WIA_LIB_DEST=$(PROJECT_ROOT)\wia\lib\$(PLATFORM_SUFFIX)\$(_OBJ_DIR)
  78. WIA_LIB_PATH=$(PROJECT_ROOT)\wia\lib\$(PLATFORM_SUFFIX)\$(_OBJ_DIR)\*
  79. INCLUDES = .;..;\
  80. $(WIA_INC_PATH);\
  81. $(WIA_INC_PATH)\$(O);\
  82. $(PRV_INC_PATH);\
  83. $(SDK_INC_PATH)\gdiplus;\
  84. $(PROJECT_ROOT)\inc\psutil;\
  85. $(INCLUDES)
  86. #
  87. # We always want to sign our binaries , but need to set in environment
  88. #
  89. #NT_SIGNCODE=1
  90. #
  91. # Necessary for gdiplus
  92. #
  93. C_DEFINES=$(C_DEFINES) \
  94. -DDCR_USE_NEW_105760 \
  95. -DDCR_USE_NEW_125467 \
  96. -DDCR_USE_NEW_127084 \
  97. -DDCR_USE_NEW_135429 \
  98. -DDCR_USE_NEW_137252 \
  99. -DDCR_USE_NEW_140782 \
  100. -DDCR_USE_NEW_140855 \
  101. -DDCR_USE_NEW_140857 \
  102. -DDCR_USE_NEW_140861 \
  103. -DDCR_USE_NEW_145135 \
  104. -DDCR_USE_NEW_145138 \
  105. -DDCR_USE_NEW_145139 \
  106. -DDCR_USE_NEW_145804 \
  107. -DDCR_USE_NEW_146933 \
  108. -DDCR_USE_NEW_152154 \
  109. -DDCR_USE_NEW_168772 \
  110. -DDCR_USE_NEW_174340 \
  111. -DDCR_USE_NEW_175866 \
  112. -DDCR_USE_NEW_186091 \
  113. -DDCR_USE_NEW_186151 \
  114. -DDCR_USE_NEW_186764 \
  115. -DDCR_USE_NEW_188922 \
  116. -DDCR_USE_NEW_197819 \
  117. -DDCR_USE_NEW_202903 \
  118. -DDCR_USE_NEW_235072 \
  119. -DDCR_USE_NEW_250932 \
  120. -DDCR_USE_NEW_284635 \
  121. -DDCR_USE_NEW_284841 \
  122. -DDCR_USE_NEW_293849 \
  123. -DDCR_USE_NEW_299162
  124. #
  125. # Set platform dependent settings
  126. #
  127. # PLATFORM_SUFFIX is used for generating platform specific static libs path , a la public\sdk\lib\win98
  128. #
  129. !if !defined(CHICAGO_PRODUCT)
  130. #
  131. # Require v500 to use NT5 specific APIs
  132. #
  133. WIN32_WINNT_VERSION=0x0500
  134. LIBRARY_PLATFORM_PATH = $(SDK_LIB_PATH); $(DDK_LIB_PATH)
  135. PLATFORM_SUFFIX=.
  136. USE_MSVCRT=1
  137. !else
  138. NOT_UNICODE =1
  139. # (use 'chicago' since that is already used in the NT tree)
  140. LIBRARY_PLATFORM_PATH = $(SDK_LIB_PATH); $(DDK_LIB_PATH)
  141. ALT_PROJECT_TARGET = chicago
  142. USE_MAPSYM = 1
  143. # Where to put static libraries
  144. PLATFORM_SUFFIX=chicago
  145. #
  146. # Cheat on version for Millenium
  147. #
  148. WIN32_WIN95_VERSION=0x500
  149. #
  150. # VC5 libs not shipped yet
  151. #
  152. USE_MSVCRT=1
  153. #USE_MSVCRT40=1
  154. #USE_LIBCMT=1
  155. #
  156. # Indicate target is not supporting robust RPC validation.
  157. # Have to do if we run on Win9x or NT4
  158. #
  159. #MIDL_NO_ROBUST=1
  160. #
  161. # Indicate we fully support DCOM
  162. #
  163. C_DEFINES = $(C_DEFINES) -D_WIN32_DCOM
  164. ##-D_WIN32_WINDOWS
  165. #
  166. !endif
  167. #
  168. # Include and lib directories private to the PrintScan project
  169. #
  170. PRV_INC_PATH=$(PROJECT_ROOT)\inc
  171. !if $(386)
  172. PRV_LIB_PATH=$(PROJECT_ROOT)\lib\$(PLATFORM_SUFFIX)\i386
  173. !elseif $(IA64)
  174. PRV_LIB_PATH=$(PROJECT_ROOT)\lib\ia64
  175. !elseif $(AXP64)
  176. PRV_LIB_PATH=$(PROJECT_ROOT)\lib\axp64
  177. !elseif $(ALPHA)
  178. PRV_LIB_PATH=$(PROJECT_ROOT)\lib\alpha
  179. !endif
  180. #
  181. # Set common options
  182. #
  183. # Defining this allows windows.h to include other headers
  184. NOT_LEAN_AND_MEAN=1
  185. # user mode executable type
  186. UMTYPE = windows
  187. # By default use CRT DLL, possibly we need to use IERT , it is smaller
  188. #USE_CRTDLL=1
  189. # Don't link to NTDLL if this runs on both platforms
  190. !ifdef TARGET_BOTH
  191. NO_NTDLL=1
  192. !endif
  193. #
  194. # Additional compiler flags
  195. #
  196. C_DEFINES = $(C_DEFINES) -DWIN32 -D_WIN32 -D_NTSDK
  197. !ifdef USE_ICECAP
  198. C_DEFINES = $(C_DEFINES) -DPRODUCT_PROF
  199. !endif
  200. !if !defined(CHICAGO_PRODUCT )
  201. C_DEFINES = $(C_DEFINES) -DNT -DWINNT
  202. ! if !defined(NOT_UNICODE)
  203. UNICODE=1
  204. C_DEFINES = $(C_DEFINES) -DUNICODE -D_UNICODE
  205. ! endif
  206. !else
  207. UNICODE=0
  208. C_DEFINES = $(C_DEFINES) -DWIN9X
  209. !endif
  210. !ifdef BROWSERDB
  211. #
  212. # Generating browser databases if needed
  213. #
  214. BROWSER_INFO=1
  215. BROWSERFILE=$(IMAGE_DIR)\imagein.bsc
  216. !endif
  217. # ------ Debug Only Defines --------
  218. #
  219. # For source level debugging
  220. #
  221. !ifndef NTBBT
  222. #NTDBGFILES=1
  223. !endif
  224. !IFDEF MAXDEBUG
  225. MAXDEBUG=1
  226. #DEBUG_CRTS=1
  227. NTDEBUG=ntsd
  228. NTDEBUGTYPE=windbg
  229. MSC_OPTIMIZATION=/Od
  230. C_DEFINES = $(C_DEFINES) /DMAXDEBUG /DDEBUG /DDBG=1
  231. !ENDIF
  232. #
  233. # Set obj directory correctly
  234. #
  235. OBJ_DIR=$(_OBJ_DIR)
  236. #!IF "$(FREEBUILD)" == "1"
  237. #BUILD_ALT_DIR=
  238. #OBJ_DIR=obj
  239. #!ELSE
  240. #BUILD_ALT_DIR=
  241. #OBJ_DIR=obj
  242. #!ENDIF
  243. !if "$(FREEBUILD)" == "0"
  244. C_DEFINES = $(C_DEFINES) -DDEBUG
  245. LINKER_NOICF = 1 # ICF is s-l-o-w
  246. # Check for missing PURE directives in interface decls (debug only)
  247. C_DEFINES = $(C_DEFINES) -DNO_NOVTABLE
  248. # Define MAXDEBUG for asserts to break by default
  249. ! if "$(MAXDEBUG)" == "1"
  250. C_DEFINES = $(C_DEFINES) -DMAXDEBUG
  251. ! endif
  252. # Allow someone to have ATL_DEBUG_REFCOUNT and ATL_DEBUG_QI set
  253. # in their environment to turn this on
  254. ! if "$(ATL_DEBUG_REFCOUNT)" == "1"
  255. C_DEFINES = $(C_DEFINES) -D_ATL_DEBUG_REFCOUNT
  256. ! endif
  257. ! if "$(ATL_DEBUG_QI)" == "1"
  258. C_DEFINES = $(C_DEFINES) -D_ATL_DEBUG_QI
  259. ! endif
  260. !endif
  261. # ------ End Debug Only Defines --------
  262. !if "$(MEASURE_PERF)" == "1"
  263. C_DEFINES = $(C_DEFINES) -DMEASURE_PERF
  264. !endif
  265. !if "$(NO_PRIVATE_HEADERS)" == "1"
  266. C_DEFINES = $(C_DEFINES) -DNO_PRIVATE_HEADERS
  267. !endif
  268. #
  269. # Make warnings equivalent to errors
  270. #
  271. !if !defined(MSC_WARNING_LEVEL)
  272. MSC_WARNING_LEVEL= /W3
  273. !endif
  274. MSC_WARNING_LEVEL= $(MSC_WARNING_LEVEL) /WX
  275. !if defined(CHICAGO_PRODUCT ) || defined(TARGET_BOTH)
  276. USE_MAPSYM = 1
  277. !endif
  278. #
  279. # make us completely self contained
  280. #
  281. COFFBASE_TXT_FILE=$(PROJECT_ROOT)\wia\coffbase.txt
  282. BINPLACE_PLACEFILE=$(PROJECT_ROOT)\wia\placefil.txt
  283. #
  284. # Commonly used libraries
  285. #
  286. !if !defined(DONT_DO_COMMON_LIBS)
  287. !if !defined(CHICAGO_PRODUCT)
  288. TARGETLIBS= \
  289. $(SDK_LIB_PATH)\ADVAPI32.lib \
  290. $(SDK_LIB_PATH)\GDI32.lib \
  291. $(SDK_LIB_PATH)\KERNEL32.lib \
  292. $(SDK_LIB_PATH)\user32.lib \
  293. $(SDK_LIB_PATH)\comdlg32.lib \
  294. $(SDK_LIB_PATH)\oleaut32.lib \
  295. $(SDK_LIB_PATH)\shlwapi.lib \
  296. $(SDK_LIB_PATH)\ole32.lib \
  297. $(SDK_LIB_PATH)\rpcndr.lib \
  298. $(SDK_LIB_PATH)\rpcns4.lib \
  299. $(SDK_LIB_PATH)\rpcrt4.lib \
  300. $(SDK_LIB_PATH)\uuid.lib \
  301. $(SDK_LIB_PATH)\cfgmgr32.lib \
  302. $(SDK_LIB_PATH)\setupapi.lib
  303. !else
  304. TARGETLIBS= \
  305. $(SDK_LIB_PATH)\cfgmgr32.lib \
  306. $(SDK_LIB_PATH)\setupapi.lib \
  307. $(SDK_LIB_PATH)\iprop.lib \
  308. $(SDK_LIB_PATH)\ADVAPI32.lib \
  309. $(SDK_LIB_PATH)\GDI32.lib \
  310. $(SDK_LIB_PATH)\KERNEL32.lib \
  311. $(SDK_LIB_PATH)\user32.lib \
  312. $(SDK_LIB_PATH)\comdlg32.lib \
  313. $(SDK_LIB_PATH)\oleaut32.lib \
  314. $(SDK_LIB_PATH)\shlwapi.lib \
  315. $(SDK_LIB_PATH)\ole32.lib \
  316. $(SDK_LIB_PATH)\rpcndr.lib \
  317. $(SDK_LIB_PATH)\rpcns4.lib \
  318. $(SDK_LIB_PATH)\rpcrt4.lib \
  319. $(SDK_LIB_PATH)\uuid.lib
  320. !endif
  321. !endif
  322. #
  323. # Skip these files when determining dependencies
  324. #
  325. CONDITIONAL_INCLUDES = $(CONDITIONAL_INCLUDES) \
  326. atlbase.h \
  327. atlcom.h \
  328. atlconv.h \
  329. atlctl.h \
  330. atlctl.cpp \
  331. atliface.h \
  332. atlimpl.cpp \
  333. atlwin.h \
  334. atlwin.cpp \
  335. ia64inst.h \
  336. macapi.h \
  337. macname1.h \
  338. macname2.h \
  339. macocidl.h \
  340. macpub.h \
  341. macwin32.h \
  342. mainwin.h \
  343. mwversion.h \
  344. penwin.h \
  345. pshpck16.h \
  346. rpcerr.h \
  347. rpcmac.h \
  348. setupx.h \
  349. skbapi.h \
  350. statreg.h \
  351. statreg.cpp \
  352. unixstuff.h \
  353. version.h \
  354. winwlm.h \