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.

1094 lines
27 KiB

  1. # ******** STRIPLIN=0 ********
  2. # This comment line is used by an automatic cleansing program to
  3. # remove all Microsoft-proprietary information from this makefile.
  4. # ********
  5. !if "$(LLP64)"!="1"
  6. ! if "$(BLD_SYSCRT)"!="1"
  7. DLL_VERSION=70 # Win32 VC CRT
  8. ! else
  9. DLL_VERSION=61 # Win32 System CRT
  10. ! endif
  11. !else
  12. DLL_VERSION=60 # Win64 CRT
  13. BLD_SYSCRT=1 # ... just system CRT for now
  14. !endif
  15. RETAIL_DLLCPP_NAME=msvcp$(DLL_VERSION)
  16. RETAIL_DLLCPP_NAME_UC=MSVCP$(DLL_VERSION)
  17. DEBUG_DLLCPP_NAME=msvcp$(DLL_VERSION)d
  18. DEBUG_DLLCPP_NAME_UC=MSVCP$(DLL_VERSION)D
  19. !if "$(BLD_SYSCRT)"=="1"
  20. ! if "$(LLP64)"!="1"
  21. RETAIL_LIBCPP_NAME=sysprt
  22. DEBUG_LIBCPP_NAME=sysprtd
  23. ! else
  24. RETAIL_LIBCPP_NAME=msvcprt
  25. DEBUG_LIBCPP_NAME=msvcprtd
  26. ! endif
  27. !else
  28. RETAIL_LIBCPP_NAME=msvcprt
  29. DEBUG_LIBCPP_NAME=msvcprtd
  30. !endif
  31. !if "$(BLD_SYSCRT)"!="1"
  32. RCCPP_NAME=msvcprt
  33. !else
  34. ! if "$(LLP64)"!="1"
  35. RCCPP_NAME=sysprt
  36. ! else
  37. RCCPP_NAME=sysprt64
  38. ! endif
  39. !endif
  40. # ******** STRIPLIN=1 ********
  41. ####
  42. # makefile - Makefile for Microsoft Visual C++ Run-Time Libraries
  43. #
  44. # Copyright (c) 1993-2001, Microsoft Corporation. All rights reserved.
  45. #
  46. # Purpose:
  47. # This makefile builds the Visual C++ run-time release libraries.
  48. # Just type NMAKE in the \MSDEV\CRT\SRC directory to build all target
  49. # libraries.
  50. #
  51. ###############################################################################
  52. #
  53. # Directories, Tools and Misc Definitions:
  54. #
  55. ###############################################################################
  56. #
  57. # Determine target CPU, defaulting to same as host CPU.
  58. #
  59. ###############################################################################
  60. !if "$(PROCESSOR_ARCHITECTURE)"=="x86"
  61. HOST_CPU = i386
  62. !if "$(LLP64)"=="1"
  63. TARGET_CPU = IA64
  64. CPUDIR = ia64
  65. PREFIX=.
  66. IMP_PREFIX=
  67. !else
  68. TARGET_CPU = i386
  69. CPUDIR = intel
  70. PREFIX=_
  71. IMP_PREFIX=_
  72. !endif
  73. !elseif "$(PROCESSOR_ARCHITECTURE)"=="ALPHA"
  74. HOST_CPU = ALPHA
  75. !if "$(LLP64)"=="1"
  76. TARGET_CPU = ALPHA64
  77. CPUDIR = alpha64
  78. PREFIX=
  79. IMP_PREFIX=
  80. CC = cl -Ap64
  81. !else
  82. TARGET_CPU = ALPHA
  83. CPUDIR = alpha
  84. PREFIX=
  85. IMP_PREFIX=
  86. !endif
  87. !elseif "$(PROCESSOR_ARCHITECTURE)"=="MIPS"
  88. HOST_CPU = mips
  89. TARGET_CPU = mips
  90. CPUDIR = mips
  91. PREFIX=
  92. IMP_PREFIX=
  93. !elseif "$(PROCESSOR_ARCHITECTURE)"=="PPC"
  94. HOST_CPU = PPC
  95. TARGET_CPU = PPC
  96. CPUDIR = ppc
  97. PREFIX=
  98. IMP_PREFIX=
  99. !else
  100. !error makefile: unknown host CPU
  101. !endif
  102. # Build WINHEAP version of heap manager
  103. WINHEAP = YES
  104. # Build RunTimeCheck version for VC CRT only
  105. !if "$(BLD_SYSCRT)" != "1"
  106. RTC = YES
  107. !else
  108. RTC = NO
  109. !endif
  110. STDCPP_SRC = stdcpp
  111. CPPSRC_OBJS = $(CPPSRC_OBJS_RAW:*=*_obj)
  112. CPPSRC_OBJS_DLL = $(CPPSRC_OBJS_RAW_DLL:*=*_obj)
  113. # Source directories:
  114. #
  115. # These are the directories in which to run NMAKE to update the source
  116. # objects and libraries they provide. Note that there are slight
  117. # differences between the ST/MT models and the DLL model.
  118. #
  119. # The dependencies directory list DEP_DIRS is the union of the MAKE_DIRS
  120. # and MAKE_DIRS_DLL lists.
  121. #
  122. # In order to allow for auto source library calculation, each directory
  123. # name must be preceded by a tilde (~) and followed by an asterisk (*).
  124. !if "$(BLD_LIB)"==""
  125. BLD_LIB=0
  126. !endif
  127. !if "$(BLD_OBJ)"==""
  128. BLD_OBJ=0
  129. !endif
  130. # ******** STRIPLIN=0 ********
  131. !if "$(POST_BLD)"==""
  132. POST_BLD=0
  133. !endif
  134. !if "$(PRE_BLD)"==""
  135. # ******** STRIPLIN=1 ********
  136. PRE_BLD=0
  137. # ******** STRIPLIN=0 ********
  138. !endif
  139. !if "$(POST_BLD)"=="1"
  140. # ******** STRIPLIN=1 ********
  141. MAKE_DIRSP = .
  142. MAKE_DIRSP_DLL = .
  143. DEP_DIRS = .
  144. # ******** STRIPLIN=0 ********
  145. !else
  146. !if "$(PRE_BLD)"=="1"
  147. DEP_DIRS =
  148. !else
  149. MAKE_DIRSP = crtw32\$(STDCPP_SRC)
  150. MAKE_DIRSP_DLL = crtw32\$(STDCPP_SRC)
  151. DEP_DIRS = \
  152. crtw32\$(STDCPP_SRC) \
  153. !endif
  154. !endif
  155. # ******** STRIPLIN=1 ********
  156. # Source Objects: These are the objects and/or libraries which constitute
  157. # the statically linked library flavors (LIBC.LIB and LIBCMT.LIB).
  158. CPPSRC_OBJS_RAW = build\$(CPUDIR)\*\$(STDCPP_SRC).lib
  159. # Source Objects: These are the objects and/or libraries which constitute
  160. # the dynamically linked library flavor (MSVCRTx0.DLL).
  161. CPPSRC_OBJS_RAW_DLL = build\$(CPUDIR)\*\$(STDCPP_SRC).lib
  162. UPDATE_MSG = *** Updating Component Objects ***
  163. #
  164. # Define names for the primary targets of this makefile.
  165. #
  166. ###############################################################################
  167. !if "$(IFLAG)"==""
  168. IFLAG=-i
  169. !else
  170. IFLAG=
  171. !endif
  172. !if "$(CRT_RELDIR)"==""
  173. CRT_RELDIR = build
  174. !endif
  175. RELDIR_CPU=$(CRT_RELDIR)\$(CPUDIR)
  176. # ******** STRIPLIN=0 ********
  177. !if "$(POST_BLD)"=="1"
  178. # ******** STRIPLIN=1 ********
  179. DEFFILE_DIR=$(CPUDIR)
  180. DEFFILE2_DIR=.
  181. # ******** STRIPLIN=0 ********
  182. !elseif "$(PRE_BLD)"=="1"
  183. DEFFILE_DIR=libw32\lib\$(TARGET_CPU)
  184. DEFFILE2_DIR=libw32\lib
  185. !else
  186. DEFFILE_DIR=$(RELDIR_CPU)
  187. DEFFILE2_DIR=$(RELDIR_CPU)
  188. !endif
  189. # ******** STRIPLIN=1 ********
  190. #
  191. # Tools:
  192. #
  193. !if "$(VERBOSE)"!="1"
  194. LINKER=link -nologo
  195. LINKLIB=link -lib -nologo
  196. LINKIMPLIB=link -lib -nologo
  197. BSCMAKE=bscmake -nologo
  198. !else
  199. LINKER=link
  200. LINKLIB=link -lib
  201. LINKIMPLIB=link -lib
  202. BSCMAKE=bscmake
  203. !endif
  204. # ******** STRIPLIN=0 ********
  205. !if "$(TARGET_CPU)"=="i386" || "$(TARGET_CPU)"=="ALPHA" || "$(TARGET_CPU)"=="ALPHA64"
  206. LINKER=$(LINKER) -ignore:4006,4102,4197
  207. !else
  208. LINKER=$(LINKER) -ignore:4006,4197
  209. !endif
  210. LINKLIB=$(LINKLIB) -ignore:4006
  211. LINKIMPLIB=$(LINKIMPLIB) -WX
  212. # ******** STRIPLIN=1 ********
  213. !if "$(TARGET_CPU)"=="IA64"
  214. LINKER=$(LINKER) -machine:IA64
  215. LINKLIB=$(LINKLIB) -machine:IA64
  216. LINKIMPLIB=$(LINKIMPLIB) -machine:IA64
  217. !endif
  218. COMMON_DEFS=-D_MBCS -D_MB_MAP_DIRECT -D_CRTBLD
  219. !if "$(WINHEAP)" == "YES"
  220. COMMON_DEFS=$(COMMON_DEFS) -DWINHEAP
  221. !endif
  222. !if "$(RTC)" == "YES"
  223. COMMON_DEFS=$(COMMON_DEFS) -D_RTC
  224. !endif
  225. !if "$(BLD_SYSCRT)" == "1"
  226. COMMON_DEFS=$(COMMON_DEFS) -D_SYSCRT
  227. !endif
  228. !if "$(TARGET_CPU)"=="mips"
  229. #
  230. # NT headers require _MIPS_ to be defined for mips
  231. #
  232. COMMON_DEFS=$(COMMON_DEFS) -D_MIPS_
  233. !endif
  234. !if "$(TARGET_CPU)"=="PPC"
  235. #
  236. # NT headers require _PPC_ to be defined for PowerPC
  237. #
  238. COMMON_DEFS=$(COMMON_DEFS) -D_PPC_
  239. !endif
  240. WINDOWS_H_DEFS=-DWIN32_LEAN_AND_MEAN -DNOSERVICE
  241. CC_OPTS_BASE=-c -nologo -Zelp8 -W3 -WX -GFy -DWIN32
  242. !if "$(TARGET_CPU)"=="ALPHA"
  243. CC_OPTS_BASE=$(CC_OPTS_BASE) -Gy -Gi-
  244. AS_OPTS=-nologo -Gy -D_WIN32 -DWIN32
  245. XDEBUGTYPE=cv
  246. ZDEBUGTYPE=cv,fixup
  247. !elseif "$(TARGET_CPU)"=="ALPHA64"
  248. CC_OPTS_BASE=$(CC_OPTS_BASE) -Gy -Gi-
  249. AS_OPTS=-nologo -Gy -D_WIN32 -DWIN32 -D_WIN64
  250. XDEBUGTYPE=cv
  251. ZDEBUGTYPE=cv,fixup
  252. !elseif "$(TARGET_CPU)"=="i386"
  253. CC_OPTS_BASE=$(CC_OPTS_BASE) -GB -Gi-
  254. AS_OPTS=-c -nologo -coff -Cx -Zm -DQUIET -D?QUIET -Di386 -D_WIN32 -DWIN32
  255. XDEBUGTYPE=cv
  256. ZDEBUGTYPE=cv,fixup
  257. !elseif "$(TARGET_CPU)"=="IA64"
  258. # CC_OPTS_BASE=$(CC_OPTS_BASE) -Ap32
  259. XDEBUGTYPE=both
  260. ZDEBUGTYPE=both,fixup
  261. !elseif "$(TARGET_CPU)"=="PPC"
  262. AS_OPTS=
  263. XDEBUGTYPE=cv
  264. ZDEBUGTYPE=cv,fixup
  265. !else
  266. CC_OPTS_BASE=$(CC_OPTS_BASE) -Gi-
  267. AS_OPTS=-c -nologo -D_WIN32 -DWIN32
  268. XDEBUGTYPE=cv
  269. ZDEBUGTYPE=cv,fixup
  270. !endif
  271. CC_OPTS=$(CC_OPTS_BASE) $(WINDOWS_H_DEFS)
  272. ST_DEFINES=$(COMMON_DEFS)
  273. MT_DEFINES=$(ST_DEFINES) -D_MT
  274. DLL_DEFINES=$(MT_DEFINES) -DCRTDLL
  275. # ******** STRIPLIN=2 ********
  276. #DLLCPP_DEFINES=$(MT_DEFINES) -D_DLL -DCRTDLL2
  277. # ******** STRIPLIN=0 ********
  278. DLLCPP_DEFINES=$(MT_DEFINES) -D_DLL -DCRTDLL2 -D_RETAIN_OLD_CRT_CODE=1
  279. # ******** STRIPLIN=1 ********
  280. RC_OPTS=-l 409 -r
  281. RC_DEFS=$(COMMON_DEFS) $(WINDOWS_H_DEFS)
  282. # ******** STRIPLIN=2 ********
  283. #RC_INCS=-I$(V6TOOLS)\include
  284. # ******** STRIPLIN=0 ********
  285. RC_INCS=-I$(LANGAPI)\include -I$(V6TOOLS)\include
  286. !if "$(PRE_BLD)"=="1"
  287. PDBDIR_PREFIX = ..\..\..\src\ #
  288. !else
  289. # ******** STRIPLIN=1 ********
  290. PDBDIR_PREFIX = ..\..\ #
  291. # ******** STRIPLIN=0 ********
  292. !endif
  293. # ******** STRIPLIN=1 ********
  294. PDBDIR_CPU = $(RELDIR_CPU)
  295. # ******** STRIPLIN=0 ********
  296. !if "$(PRE_BLD)"=="1" || "$(POST_BLD)"=="1"
  297. PDBDIR_CPU_DLL = $(PDBDIR_CPU)\dll_pdb
  298. !else
  299. PDBDIR_CPU_DLL = $(PDBDIR_CPU)
  300. !endif
  301. # ******** STRIPLIN=1 ********
  302. RELEASE_LIBCPPST = $(RELDIR_CPU)\libcp.lib
  303. RELEASE_LIBCPPMT = $(RELDIR_CPU)\libcpmt.lib
  304. RELEASE_DLLCPP = $(RELDIR_CPU)\$(RETAIL_DLLCPP_NAME).dll
  305. RELEASE_IMPLIB_DLLCPP = $(RELDIR_CPU)\$(RETAIL_LIBCPP_NAME).lib
  306. RELEASE_LIBCPPST_PDB = $(PDBDIR_CPU)\libcp.pdb
  307. RELEASE_LIBCPPMT_PDB = $(PDBDIR_CPU)\libcpmt.pdb
  308. RELEASE_IMPLIBCPP_PDB = $(PDBDIR_CPU)\$(RETAIL_LIBCPP_NAME).pdb
  309. RELEASE_DLLCPP_PDB = $(PDBDIR_CPU_DLL)\$(RETAIL_DLLCPP_NAME).pdb
  310. RELEASE_LIBCPPST_DBG = $(RELDIR_CPU)\libcpd.lib
  311. RELEASE_LIBCPPMT_DBG = $(RELDIR_CPU)\libcpmtd.lib
  312. RELEASE_DLLCPP_DBG = $(RELDIR_CPU)\$(DEBUG_DLLCPP_NAME).dll
  313. RELEASE_IMPLIB_DLLCPP_DBG = $(RELDIR_CPU)\$(DEBUG_LIBCPP_NAME).lib
  314. RELEASE_LIBCPPST_DBG_PDB = $(PDBDIR_CPU)\libcpd.pdb
  315. RELEASE_LIBCPPMT_DBG_PDB = $(PDBDIR_CPU)\libcpmtd.pdb
  316. RELEASE_IMPLIBCPP_DBG_PDB = $(PDBDIR_CPU)\$(DEBUG_LIBCPP_NAME).pdb
  317. RELEASE_DLLCPP_DBG_PDB = $(PDBDIR_CPU_DLL)\$(DEBUG_DLLCPP_NAME).pdb
  318. FD_REL_STP=-Fd$(PDBDIR_PREFIX)$(RELEASE_LIBCPPST_PDB)
  319. FD_REL_MTP=-Fd$(PDBDIR_PREFIX)$(RELEASE_LIBCPPMT_PDB)
  320. FD_REL_DLLP=-Fd$(PDBDIR_PREFIX)$(RELEASE_IMPLIBCPP_PDB)
  321. FD_REL_STP_DBG=-Fd$(PDBDIR_PREFIX)$(RELEASE_LIBCPPST_DBG_PDB)
  322. FD_REL_MTP_DBG=-Fd$(PDBDIR_PREFIX)$(RELEASE_LIBCPPMT_DBG_PDB)
  323. FD_REL_DLLP_DBG=-Fd$(PDBDIR_PREFIX)$(RELEASE_IMPLIBCPP_DBG_PDB)
  324. #
  325. # Locate the scratch location for object files of various flavors.
  326. #
  327. ###############################################################################
  328. OBJROOT = build
  329. OBJDIR_PREFIX = ..\..\ #
  330. OBJCPUDIR = $(OBJROOT)\$(CPUDIR)
  331. OBJDIR_ST = $(OBJCPUDIR)\st_obj
  332. OBJDIR_MT = $(OBJCPUDIR)\mt_obj
  333. OBJDIR_DLL = $(OBJCPUDIR)\dll_obj
  334. OBJDIR_DLL_RAW = $(OBJCPUDIR)\*_obj
  335. OBJDIR_ST_DBG = $(OBJCPUDIR)\xst_obj
  336. OBJDIR_MT_DBG = $(OBJCPUDIR)\xmt_obj
  337. OBJDIR_DLL_DBG = $(OBJCPUDIR)\xdll_obj
  338. # ******** STRIPLIN=0 ********
  339. ####
  340. #
  341. # Here are the build targets
  342. #
  343. ####
  344. !if "$(LANGAPI)" == ""
  345. all :
  346. @echo.
  347. @echo *********************************************************
  348. @echo The environment variable LANGAPI must be set to point to
  349. @echo a copy of the LANGAPI project for the CRTL build to work.
  350. @echo *********************************************************
  351. @echo.
  352. release st mt dll : all
  353. debug xst xmt xdll : all
  354. !elseif "$(V6TOOLS)" == ""
  355. all :
  356. @echo.
  357. @echo ****************************************************
  358. @echo The environment variable V6TOOLS must be set to point
  359. @echo to the location of the top subdirectory of the TOOLS
  360. @echo project (or other location which has a subdirectory
  361. @echo INCLUDE containing WINDOWS.H and related header files)
  362. @echo and has a subdirectory LIB (containing KERNEL32.LIB).
  363. @echo This is necessary for proper creation of build tools.
  364. @echo ****************************************************
  365. @echo.
  366. release st mt dll : all
  367. debug xst xmt xdll : all
  368. !else
  369. # ******** STRIPLIN=1 ********
  370. all : release debug
  371. release : st mt dll
  372. debug : xst xmt xdll
  373. !endif # STRIPLIN!
  374. ####
  375. #
  376. # Directory Targets
  377. #
  378. ####
  379. $(OBJDIR_ST) $(OBJDIR_MT) $(OBJDIR_DLL) \
  380. $(OBJDIR_ST_DBG) $(OBJDIR_MT_DBG) $(OBJDIR_DLL_DBG) \
  381. $(CRT_RELDIR) $(RELDIR_CPU) \
  382. !if "$(PDBDIR_CPU_DLL)"!="$(RELDIR_CPU)" # STRIPLIN!
  383. $(PDBDIR_CPU_DLL) \
  384. !endif # STRIPLIN!
  385. :
  386. if not exist $@\* mkdir $@
  387. ####
  388. #
  389. # Define the path to return to the main directory where nmake is revoked
  390. #
  391. ####
  392. !if "$(POST_BLD)"=="1" # STRIPLIN!
  393. CD_ROOT=.
  394. # ******** STRIPLIN=0 ********
  395. !elseif "$(PRE_BLD)"=="1"
  396. CD_ROOT=..
  397. !else
  398. CD_ROOT=..\..
  399. !endif
  400. # ******** STRIPLIN=1 ********
  401. ####
  402. #
  403. # Pseudo-target user interface:
  404. #
  405. ####
  406. stp_env :
  407. !if "$(PRE_BLD)"!="1" && "$(BLD_LIB)"!="1"
  408. !@-echo. \
  409. & echo # *** These are the compiler switches for the ST model (LIBCP.LIB): \
  410. & echo # \
  411. & echo # CL = $(CC_OPTS_BASE) \ \
  412. & echo # $(WINDOWS_H_DEFS) $(FD_REL_STP) \ \
  413. & echo # $(ST_DEFINES) \
  414. & echo # \
  415. & echo # ML = $(AS_OPTS) \ \
  416. & echo # $(ST_DEFINES) \
  417. & echo.
  418. !endif
  419. st : $(OBJROOT) $(OBJCPUDIR) $(OBJDIR_ST) $(RELDIR_CPU) \
  420. stp_env st_p
  421. !if "$(BLD_BROWSE)"=="1" && "$(PRE_BLD)"!="1" && "$(BLD_OBJ)"!="1"
  422. $(BSCMAKE) -o $(RELEASE_LIBCST:.lib=.bsc) $(OBJDIR_ST)\*.sbr
  423. !endif
  424. !if "$(BLD_LIB)"!="1"
  425. !if "$(PRE_BLD)"!="1"
  426. st_p :: $(MAKE_DIRSP)
  427. !@-cd $** \
  428. & set CL=$(CC_OPTS) $(ST_DEFINES) $(FD_REL_STP) \
  429. & set ML=$(AS_OPTS) $(ST_DEFINES) \
  430. & $(MAKE) -nologo $(IFLAG) -f ..\..\makefile.sub DIR=$** CPUDIR=$(CPUDIR) \
  431. WINHEAP=$(WINHEAP) RTC=$(RTC) \
  432. BLD_MODEL=st OBJDIR=$(OBJDIR_PREFIX)$(OBJDIR_ST) \
  433. TARGET_CPU=$(TARGET_CPU) HOST_CPU=$(HOST_CPU) \
  434. PRE_BLD=$(PRE_BLD) POST_BLD=$(POST_BLD) _stdcpp_ \
  435. & cd $(CD_ROOT)
  436. !endif
  437. !endif # BLD_LIB != 1
  438. !if "$(PRE_BLD)"!="1" && "$(BLD_OBJ)"!="1"
  439. st_p :: $(RELEASE_LIBCPPST)
  440. !else
  441. st_p ::
  442. !endif
  443. mtp_env :
  444. !if "$(PRE_BLD)"!="1" && "$(BLD_LIB)"!="1"
  445. !@-echo. \
  446. & echo # *** These are the compiler switches for the MT model (LIBCPMT.LIB): \
  447. & echo # \
  448. & echo # CL = $(CC_OPTS_BASE) \ \
  449. & echo # $(WINDOWS_H_DEFS) $(FD_REL_MTP) \ \
  450. & echo # $(MT_DEFINES) \
  451. & echo # \
  452. & echo # ML = $(AS_OPTS) \ \
  453. & echo # $(MT_DEFINES) \
  454. & echo.
  455. !endif
  456. mt : $(OBJROOT) $(OBJCPUDIR) $(OBJDIR_MT) $(RELDIR_CPU) \
  457. mtp_env mt_p
  458. !if "$(BLD_BROWSE)"=="1" && "$(PRE_BLD)"!="1" && "$(BLD_OBJ)"!="1"
  459. $(BSCMAKE) -o $(RELEASE_LIBCMT:.lib=.bsc) $(OBJDIR_MT)\*.sbr
  460. !endif
  461. !if "$(BLD_LIB)"!="1"
  462. !if "$(PRE_BLD)"!="1"
  463. mt_p :: $(MAKE_DIRSP)
  464. !@-cd $** \
  465. & set CL=$(CC_OPTS) $(MT_DEFINES) $(FD_REL_MTP) \
  466. & set ML=$(AS_OPTS) $(MT_DEFINES) \
  467. & $(MAKE) -nologo $(IFLAG) -f ..\..\makefile.sub DIR=$** CPUDIR=$(CPUDIR) \
  468. WINHEAP=$(WINHEAP) RTC=$(RTC) \
  469. BLD_MODEL=mt OBJDIR=$(OBJDIR_PREFIX)$(OBJDIR_MT) \
  470. TARGET_CPU=$(TARGET_CPU) HOST_CPU=$(HOST_CPU) \
  471. PRE_BLD=$(PRE_BLD) POST_BLD=$(POST_BLD) _stdcpp_ \
  472. & cd $(CD_ROOT)
  473. !endif
  474. !endif # BLD_LIB != 1
  475. !if "$(PRE_BLD)"!="1" && "$(BLD_OBJ)"!="1"
  476. mt_p :: $(RELEASE_LIBCPPMT)
  477. !else
  478. mt_p ::
  479. !endif
  480. dllp_env :
  481. !if "$(PRE_BLD)"!="1" && "$(BLD_LIB)"!="1"
  482. !@-echo. \
  483. & echo # *** These are the compiler switches for the DLL model (MSVCPRT.LIB): \
  484. & echo # \
  485. & echo # CL = $(CC_OPTS_BASE) \ \
  486. & echo # $(WINDOWS_H_DEFS) $(FD_REL_DLLP) \ \
  487. & echo # $(DLLCPP_DEFINES) \
  488. & echo # \
  489. & echo # ML = $(AS_OPTS) \ \
  490. & echo # $(DLLCPP_DEFINES) \
  491. & echo.
  492. !endif
  493. dll : $(OBJROOT) $(OBJCPUDIR) $(OBJDIR_DLL) $(RELDIR_CPU) $(PDBDIR_CPU_DLL) \
  494. others dllp_env dll_p
  495. !if "$(BLD_BROWSE)"=="1" && "$(PRE_BLD)"!="1" && "$(BLD_OBJ)"!="1"
  496. $(BSCMAKE) -o $(RELEASE_IMPLIB_DLLCPP:.lib=.bsc) $(OBJDIR_DLL)\*.sbr
  497. !endif
  498. !if "$(BLD_LIB)"!="1"
  499. !if "$(PRE_BLD)"!="1"
  500. dll_p :: $(MAKE_DIRSP_DLL)
  501. !@-cd $** \
  502. & set CL=$(CC_OPTS) $(DLLCPP_DEFINES) $(FD_REL_DLLP) \
  503. & set ML=$(AS_OPTS) $(DLLCPP_DEFINES) \
  504. & $(MAKE) -nologo $(IFLAG) -f ..\..\makefile.sub DIR=$** CPUDIR=$(CPUDIR) \
  505. WINHEAP=$(WINHEAP) RTC=$(RTC) \
  506. BLD_MODEL=dll BLD_DLL=1 OBJDIR=$(OBJDIR_PREFIX)$(OBJDIR_DLL) \
  507. TARGET_CPU=$(TARGET_CPU) HOST_CPU=$(HOST_CPU) \
  508. PRE_BLD=$(PRE_BLD) POST_BLD=$(POST_BLD) _stdcpp_ \
  509. & cd $(CD_ROOT)
  510. !endif
  511. !endif # BLD_LIB != 1
  512. !if "$(PRE_BLD)"!="1" && "$(BLD_OBJ)"!="1"
  513. dll_p :: $(RELEASE_DLLCPP)
  514. !else
  515. dll_p ::
  516. !endif
  517. xstp_env :
  518. !if "$(PRE_BLD)"!="1" && "$(BLD_LIB)"!="1"
  519. !@-echo. \
  520. & echo # *** These are the compiler switches for the XST model (LIBCPD.LIB): \
  521. & echo # \
  522. & echo # CL = $(CC_OPTS_BASE) \ \
  523. & echo # $(WINDOWS_H_DEFS) $(FD_REL_STP_DBG) \ \
  524. & echo # $(ST_DEFINES) \
  525. & echo # \
  526. & echo # ML = $(AS_OPTS) \ \
  527. & echo # $(ST_DEFINES) \
  528. & echo.
  529. !endif
  530. xst : $(OBJROOT) $(OBJCPUDIR) $(OBJDIR_ST_DBG) $(RELDIR_CPU) \
  531. xstp_env xst_p
  532. !if "$(BLD_BROWSE)"=="1" && "$(PRE_BLD)"!="1" && "$(BLD_OBJ)"!="1"
  533. $(BSCMAKE) -o $(RELEASE_LIBCST_DBG:.lib=.bsc) $(OBJDIR_ST_DBG)\*.sbr
  534. !endif
  535. !if "$(BLD_LIB)"!="1"
  536. !if "$(PRE_BLD)"!="1"
  537. xst_p :: $(MAKE_DIRSP)
  538. !@-cd $** \
  539. & set CL=$(CC_OPTS) $(ST_DEFINES) $(FD_REL_STP_DBG) \
  540. & set ML=$(AS_OPTS) $(ST_DEFINES) \
  541. & $(MAKE) -nologo $(IFLAG) -f ..\..\makefile.sub DIR=$** CPUDIR=$(CPUDIR) \
  542. WINHEAP=$(WINHEAP) RTC=$(RTC) \
  543. BLD_MODEL=xst BLD_DBG=1 OBJDIR=$(OBJDIR_PREFIX)$(OBJDIR_ST_DBG) \
  544. TARGET_CPU=$(TARGET_CPU) HOST_CPU=$(HOST_CPU) \
  545. PRE_BLD=$(PRE_BLD) POST_BLD=$(POST_BLD) _stdcpp_ \
  546. & cd $(CD_ROOT)
  547. !endif
  548. !endif # BLD_LIB != 1
  549. !if "$(PRE_BLD)"!="1" && "$(BLD_OBJ)"!="1"
  550. xst_p :: $(RELEASE_LIBCPPST_DBG)
  551. !else
  552. xst_p ::
  553. !endif
  554. xmtp_env :
  555. !if "$(PRE_BLD)"!="1" && "$(BLD_LIB)"!="1"
  556. !@-echo. \
  557. & echo # *** These are the compiler switches for the XMT model (LIBCPMTD.LIB): \
  558. & echo # \
  559. & echo # CL = $(CC_OPTS_BASE) \ \
  560. & echo # $(WINDOWS_H_DEFS) $(FD_REL_MTP_DBG) \ \
  561. & echo # $(MT_DEFINES) \
  562. & echo # \
  563. & echo # ML = $(AS_OPTS) \ \
  564. & echo # $(MT_DEFINES) \
  565. & echo.
  566. !endif
  567. xmt : $(OBJROOT) $(OBJCPUDIR) $(OBJDIR_MT_DBG) $(RELDIR_CPU) \
  568. xmtp_env xmt_p
  569. !if "$(BLD_BROWSE)"=="1" && "$(PRE_BLD)"!="1" && "$(BLD_OBJ)"!="1"
  570. $(BSCMAKE) -o $(RELEASE_LIBCMT_DBG:.lib=.bsc) $(OBJDIR_MT_DBG)\*.sbr
  571. !endif
  572. !if "$(BLD_LIB)"!="1"
  573. !if "$(PRE_BLD)"!="1"
  574. xmt_p :: $(MAKE_DIRSP)
  575. !@-cd $** \
  576. & set CL=$(CC_OPTS) $(MT_DEFINES) $(FD_REL_MTP_DBG) \
  577. & set ML=$(AS_OPTS) $(MT_DEFINES) \
  578. & $(MAKE) -nologo $(IFLAG) -f ..\..\makefile.sub DIR=$** CPUDIR=$(CPUDIR) \
  579. WINHEAP=$(WINHEAP) RTC=$(RTC) \
  580. BLD_MODEL=xmt BLD_DBG=1 OBJDIR=$(OBJDIR_PREFIX)$(OBJDIR_MT_DBG) \
  581. TARGET_CPU=$(TARGET_CPU) HOST_CPU=$(HOST_CPU) \
  582. PRE_BLD=$(PRE_BLD) POST_BLD=$(POST_BLD) _stdcpp_ \
  583. & cd $(CD_ROOT)
  584. !endif
  585. !endif # BLD_LIB != 1
  586. !if "$(PRE_BLD)"!="1" && "$(BLD_OBJ)"!="1"
  587. xmt_p :: $(RELEASE_LIBCPPMT_DBG)
  588. !else
  589. xmt_p ::
  590. !endif
  591. xdllp_env :
  592. !if "$(PRE_BLD)"!="1" && "$(BLD_LIB)"!="1"
  593. !@-echo. \
  594. & echo # *** These are the compiler switches for the XDLL model (MSVCPRTD.LIB): \
  595. & echo # \
  596. & echo # CL = $(CC_OPTS_BASE) \ \
  597. & echo # $(WINDOWS_H_DEFS) $(FD_REL_DLLP_DBG) \ \
  598. & echo # $(DLLCPP_DEFINES) \
  599. & echo # \
  600. & echo # ML = $(AS_OPTS) \ \
  601. & echo # $(DLLCPP_DEFINES) \
  602. & echo.
  603. !endif
  604. xdll : $(OBJROOT) $(OBJCPUDIR) $(OBJDIR_DLL_DBG) $(RELDIR_CPU) $(PDBDIR_CPU_DLL) \
  605. xothers xdllp_env xdll_p
  606. !if "$(BLD_BROWSE)"=="1" && "$(PRE_BLD)"!="1" && "$(BLD_OBJ)"!="1"
  607. $(BSCMAKE) -o $(RELEASE_IMPLIB_DLLCPP_DBG:.lib=.bsc) $(OBJDIR_DLL_DBG)\*.sbr
  608. !endif
  609. !if "$(BLD_LIB)"!="1"
  610. !if "$(PRE_BLD)"!="1"
  611. xdll_p :: $(MAKE_DIRSP_DLL)
  612. !@-cd $** \
  613. & set CL=$(CC_OPTS) $(DLLCPP_DEFINES) $(FD_REL_DLLP_DBG) \
  614. & set ML=$(AS_OPTS) $(DLLCPP_DEFINES) \
  615. & $(MAKE) -nologo $(IFLAG) -f ..\..\makefile.sub DIR=$** CPUDIR=$(CPUDIR) \
  616. WINHEAP=$(WINHEAP) RTC=$(RTC) \
  617. BLD_MODEL=xdll BLD_DLL=1 BLD_DBG=1 OBJDIR=$(OBJDIR_PREFIX)$(OBJDIR_DLL_DBG) \
  618. TARGET_CPU=$(TARGET_CPU) HOST_CPU=$(HOST_CPU) \
  619. PRE_BLD=$(PRE_BLD) POST_BLD=$(POST_BLD) _stdcpp_ \
  620. & cd $(CD_ROOT)
  621. !endif
  622. !endif # BLD_LIB != 1
  623. !if "$(PRE_BLD)"!="1" && "$(BLD_OBJ)"!="1"
  624. xdll_p :: $(RELEASE_DLLCPP_DBG)
  625. !else
  626. xdll_p ::
  627. !endif
  628. all_link: st_link mt_link dll_link
  629. st_link: $(RELEASE_LIBCPPST)
  630. mt_link: $(RELEASE_LIBCPPMT)
  631. dll_link: $(RELEASE_DLLCPP)
  632. !if "$(POST_BLD)"=="1" # STRIPLIN!
  633. others :
  634. xothers :
  635. # ******** STRIPLIN=0 ********
  636. !else
  637. !if "$(PRE_BLD)"=="1"
  638. others: \
  639. $(DEFFILE2_DIR)\$(RETAIL_LIBCPP_NAME).def \
  640. xothers : \
  641. $(DEFFILE2_DIR)\$(DEBUG_LIBCPP_NAME).def \
  642. !else
  643. others :
  644. xothers :
  645. !endif
  646. !endif
  647. # ******** STRIPLIN=1 ********
  648. #
  649. # Make Process for Static Libraries
  650. #
  651. ###############################################################################
  652. $(RELEASE_LIBCPPST): $(RELDIR_CPU) $(CPPSRC_OBJS:*=st) \
  653. $(OBJDIR_ST)\linkcpp.rsp
  654. $(LINKLIB) -out:$@ @$(OBJDIR_ST)\linkcpp.rsp
  655. !if "$(BLD_OBJ)"!="1"
  656. $(OBJDIR_ST)\linkcpp.rsp: makefile
  657. @echo *** Creating linker response file <<$@
  658. $(CPPSRC_OBJS:*=st)
  659. <<keep
  660. !endif
  661. $(RELEASE_LIBCPPST_DBG): $(RELDIR_CPU) $(CPPSRC_OBJS:*=xst) \
  662. $(OBJDIR_ST_DBG)\linkcpp.rsp
  663. $(LINKLIB) -out:$@ @$(OBJDIR_ST_DBG)\linkcpp.rsp
  664. !if "$(BLD_OBJ)"!="1"
  665. $(OBJDIR_ST_DBG)\linkcpp.rsp: makefile
  666. @echo *** Creating linker response file <<$@
  667. $(CPPSRC_OBJS:*=xst)
  668. <<keep
  669. !endif
  670. $(RELEASE_LIBCPPMT): $(RELDIR_CPU) $(CPPSRC_OBJS:*=mt) \
  671. $(OBJDIR_MT)\linkcpp.rsp
  672. $(LINKLIB) -out:$@ @$(OBJDIR_MT)\linkcpp.rsp
  673. !if "$(BLD_OBJ)"!="1"
  674. $(OBJDIR_MT)\linkcpp.rsp: makefile
  675. @echo *** Creating linker response file <<$@
  676. $(CPPSRC_OBJS:*=mt)
  677. <<keep
  678. !endif
  679. $(RELEASE_LIBCPPMT_DBG): $(RELDIR_CPU) $(CPPSRC_OBJS:*=xmt) \
  680. $(OBJDIR_MT_DBG)\linkcpp.rsp
  681. $(LINKLIB) -out:$@ @$(OBJDIR_MT_DBG)\linkcpp.rsp
  682. !if "$(BLD_OBJ)"!="1"
  683. $(OBJDIR_MT_DBG)\linkcpp.rsp: makefile
  684. @echo *** Creating linker response file <<$@
  685. $(CPPSRC_OBJS:*=xmt)
  686. <<keep
  687. !endif
  688. #
  689. # Make Process for C Run-Time DLL
  690. #
  691. ###############################################################################
  692. # These are the C++ objects in MSVCPRT{,D}.LIB
  693. DLLCPP_STATIC_OBJS_RAW= \
  694. $(OBJDIR_DLL_RAW)\delaop2_s.obj \
  695. $(OBJDIR_DLL_RAW)\newaop_s.obj \
  696. $(OBJDIR_DLL_RAW)\newaop2_s.obj \
  697. $(OBJDIR_DLL_RAW)\delop2_s.obj \
  698. $(OBJDIR_DLL_RAW)\newop_s.obj \
  699. $(OBJDIR_DLL_RAW)\newop2_s.obj
  700. DLLCPP_STATIC_OBJS=$(DLLCPP_STATIC_OBJS_RAW:*=dll)
  701. DLLCPP_STATIC_OBJS_DBG=$(DLLCPP_STATIC_OBJS_RAW:*=xdll)
  702. # These are the C++ objects in MSVCP70{,D}.DLL which have exports
  703. OBJS_WITH_EXPORTS_DLLCPP_RAW= \
  704. $(OBJDIR_DLL_RAW)\cerr.obj \
  705. $(OBJDIR_DLL_RAW)\cin.obj \
  706. $(OBJDIR_DLL_RAW)\clog.obj \
  707. $(OBJDIR_DLL_RAW)\cout.obj \
  708. $(OBJDIR_DLL_RAW)\fiopen.obj \
  709. $(OBJDIR_DLL_RAW)\instances.obj \
  710. $(OBJDIR_DLL_RAW)\iomanip.obj \
  711. $(OBJDIR_DLL_RAW)\iosptrs.obj \
  712. $(OBJDIR_DLL_RAW)\iostream.obj \
  713. $(OBJDIR_DLL_RAW)\locale.obj \
  714. $(OBJDIR_DLL_RAW)\nomemory.obj \
  715. $(OBJDIR_DLL_RAW)\string.obj \
  716. $(OBJDIR_DLL_RAW)\strstrea.obj \
  717. $(OBJDIR_DLL_RAW)\uncaught.obj \
  718. $(OBJDIR_DLL_RAW)\wcerr.obj \
  719. $(OBJDIR_DLL_RAW)\wcin.obj \
  720. $(OBJDIR_DLL_RAW)\wclog.obj \
  721. $(OBJDIR_DLL_RAW)\wcout.obj \
  722. $(OBJDIR_DLL_RAW)\wctrans.obj \
  723. $(OBJDIR_DLL_RAW)\wctype.obj \
  724. $(OBJDIR_DLL_RAW)\wiostrea.obj \
  725. $(OBJDIR_DLL_RAW)\xmbtowc.obj \
  726. $(OBJDIR_DLL_RAW)\xstrcoll.obj \
  727. $(OBJDIR_DLL_RAW)\xstrxfrm.obj \
  728. $(OBJDIR_DLL_RAW)\xwctomb.obj
  729. OBJS_WITH_EXPORTS_DLLCPP=$(OBJS_WITH_EXPORTS_DLLCPP_RAW:*=dll)
  730. OBJS_WITH_EXPORTS_DLLCPP_DBG=$(OBJS_WITH_EXPORTS_DLLCPP_RAW:*=xdll)
  731. #
  732. !if "$(POST_BLD)"!="1"
  733. $(DEFFILE2_DIR)\$(RETAIL_LIBCPP_NAME).def : libw32\$(RCCPP_NAME).src
  734. @echo.
  735. @echo *** Creating file $@ from $**
  736. $(CC) -nologo -DLIBRARYNAME=$(RETAIL_DLLCPP_NAME_UC) $(DLLCPP_DEFINES) -EP -Tclibw32\$(RCCPP_NAME).src | sed "/^[ ]*$$/d" > $@
  737. $(DEFFILE2_DIR)\$(DEBUG_LIBCPP_NAME).def : libw32\$(RCCPP_NAME).src
  738. @echo.
  739. @echo *** Creating file $@ from $**
  740. $(CC) -nologo -DLIBRARYNAME=$(DEBUG_DLLCPP_NAME_UC) $(DLLCPP_DEFINES) -D_DEBUG -EP -Tclibw32\$(RCCPP_NAME).src | sed "/^[ ]*$$/d" > $@
  741. !endif
  742. # MSVCP70.DLL / MSVCPRT.LIB
  743. $(RELEASE_DLLCPP) : $(RELDIR_CPU) libw32\$(RCCPP_NAME).rc \
  744. $(DEFFILE2_DIR)\$(RETAIL_LIBCPP_NAME).def $(CPPSRC_OBJS_DLL:*=dll) \
  745. $(DLLCPP_STATIC_OBJS) \
  746. $(V6TOOLS)\include\winver.h \
  747. # ******** STRIPLIN=0 ********
  748. $(LANGAPI)\include\version.h \
  749. # ******** STRIPLIN=1 ********
  750. $(OBJDIR_DLL)\linkp.rsp $(OBJDIR_DLL)\implibp.rsp
  751. rc $(RC_OPTS) -Fo $(@R).res $(RC_DEFS) $(RC_INCS) libw32\$(RCCPP_NAME).rc
  752. $(LINKER) @$(OBJDIR_DLL)\linkp.rsp
  753. $(LINKIMPLIB) @$(OBJDIR_DLL)\implibp.rsp
  754. !if "$(BLD_OBJ)"!="1"
  755. $(OBJDIR_DLL)\linkp.rsp: makefile
  756. @echo *** Creating linker response file <<$@
  757. !if "$(BLD_SYSCRT)" == "1"
  758. -base:0x780C0000
  759. !else
  760. -base:0x5E0C0000
  761. !endif
  762. !if "$(BLD_REL_NO_DBINFO)" != "1"
  763. -debug
  764. -debugtype:$(ZDEBUGTYPE)
  765. -pdb:$(RELEASE_DLLCPP_PDB)
  766. !endif
  767. -def:$(DEFFILE2_DIR)\$(RETAIL_LIBCPP_NAME).def
  768. -dll
  769. -force:multiple
  770. -implib:$(OBJDIR_DLL)\tmpp.lib
  771. -incremental:no
  772. !if "$(LLP64)"=="1"
  773. -osversion:5.00
  774. -subsystem:WINDOWS,5.00
  775. !endif
  776. -map
  777. -out:$(RELEASE_DLLCPP)
  778. -release
  779. -nodefaultlib:$(RETAIL_LIBCPP_NAME).lib
  780. $(OBJS_WITH_EXPORTS_DLLCPP)
  781. $(RELEASE_DLLCPP:.dll=.res)
  782. $(CPPSRC_OBJS_DLL:*=dll)
  783. msvcrt.lib
  784. kernel32.lib
  785. <<keep
  786. $(OBJDIR_DLL)\implibp.rsp: makefile
  787. @echo *** Creating linker response file <<$@
  788. -out:$(RELEASE_IMPLIB_DLLCPP)
  789. $(OBJDIR_DLL)\tmpp.lib
  790. $(DLLCPP_STATIC_OBJS)
  791. <<keep
  792. !endif
  793. # MSVCP70D.DLL / MSVCPRTD.LIB
  794. $(RELEASE_DLLCPP_DBG) : $(RELDIR_CPU) libw32\$(RCCPP_NAME).rc \
  795. $(DEFFILE2_DIR)\$(DEBUG_LIBCPP_NAME).def $(CPPSRC_OBJS_DLL:*=xdll) \
  796. $(DLLCPP_STATIC_OBJS_DBG) \
  797. $(V6TOOLS)\include\winver.h \
  798. # ******** STRIPLIN=0 ********
  799. $(LANGAPI)\include\version.h \
  800. # ******** STRIPLIN=1 ********
  801. $(OBJDIR_DLL_DBG)\linkp.rsp $(OBJDIR_DLL_DBG)\implibp.rsp
  802. rc $(RC_OPTS) -Fo $(@R).res -D_DEBUG $(RC_DEFS) $(RC_INCS) libw32\$(RCCPP_NAME).rc
  803. $(LINKER) @$(OBJDIR_DLL_DBG)\linkp.rsp
  804. $(LINKIMPLIB) @$(OBJDIR_DLL_DBG)\implibp.rsp
  805. !if "$(BLD_OBJ)"!="1"
  806. $(OBJDIR_DLL_DBG)\linkp.rsp: makefile
  807. @echo *** Creating linker response file <<$@
  808. -base:0x10480000
  809. -debug
  810. -debugtype:$(XDEBUGTYPE)
  811. -def:$(DEFFILE2_DIR)\$(DEBUG_LIBCPP_NAME).def
  812. -dll
  813. -force:multiple
  814. -implib:$(OBJDIR_DLL_DBG)\tmpp.lib
  815. -incremental:no
  816. !if "$(LLP64)"=="1"
  817. -osversion:5.00
  818. -subsystem:WINDOWS,5.00
  819. !endif
  820. -map
  821. -out:$(RELEASE_DLLCPP_DBG)
  822. -release
  823. -nodefaultlib:$(DEBUG_LIBCPP_NAME).lib
  824. -pdb:$(RELEASE_DLLCPP_DBG_PDB)
  825. $(OBJS_WITH_EXPORTS_DLLCPP_DBG)
  826. $(RELEASE_DLLCPP_DBG:.dll=.res)
  827. $(CPPSRC_OBJS_DLL:*=xdll)
  828. msvcrtd.lib
  829. kernel32.lib
  830. <<keep
  831. $(OBJDIR_DLL_DBG)\implibp.rsp: makefile
  832. @echo *** Creating linker response file <<$@
  833. -out:$(RELEASE_IMPLIB_DLLCPP_DBG)
  834. $(DLLCPP_STATIC_OBJS_DBG)
  835. $(OBJDIR_DLL_DBG)\tmpp.lib
  836. <<keep
  837. !endif
  838. # ******** STRIPLIN=0 ********
  839. #
  840. # Auto Rebuild of Dependencies:
  841. #
  842. # The DEP_CINCS must be the union of the C_INCLUDES variable for the crtw32/*
  843. # subdirectories (as set in MAKEFILE.SUB) and the fpw32/* exception cases
  844. # (as set in fpw32/{conv,tran}/lsources). Likewise DEP_AINCS is the union
  845. # of the two versions of A_INCLUDES (in MAKEFILE.SUB and fpw32/*/lsources.)
  846. #
  847. ###############################################################################
  848. !if "$(V6TOOLS)" == ""
  849. depend :
  850. @echo.
  851. @echo ****************************************************
  852. @echo The environment variable V6TOOLS must be set to point
  853. @echo to the location of the top subdirectory of the TOOLS
  854. @echo project (or other location which has a subdirectory
  855. @echo INCLUDE containing WINDOWS.H and related header files)
  856. @echo and has a subdirectory LIB (containing KERNEL32.LIB).
  857. @echo This is necessary for proper creation of dependencies.
  858. @echo ****************************************************
  859. @echo.
  860. !else
  861. DEP_CINCS = -I. -I../h -I../../crtw32/h -I../include \
  862. -I../stdhpp -I$(V6TOOLS)\include \
  863. -I$(LANGAPI)/include -I$(LANGAPI)/undname
  864. DEP_AINCS = -I../h -I. -I../../crtw32/h -I../inc -I../inc/$(TARGET_CPU)
  865. DEP_OBJDIR = $$(OBJDIR)/
  866. MKDEP = mkdep -v -P $(DEP_OBJDIR) -s .obj -n
  867. depend : del_sed depend.sed _depend_
  868. !if "$(POST_BLD)"=="1"
  869. DEPSED_SED=..\..\..\prebuild\depsed.sed # extra ../'s because of processing
  870. CPUSUBDIR=$(CPUDIR)
  871. !else
  872. DEPSED_SED=depsed.sed
  873. CPUSUBDIR=$(TARGET_CPU)
  874. !endif
  875. del_sed :
  876. if exist depend.sed del depend.sed
  877. depend.sed : makefile $(DEPSED_SED)
  878. echo s/$(V6TOOLS)/$$(V6TOOLS)/g | sed -f $(DEPSED_SED) > depend.sed
  879. echo s/$(LANGAPI)/$$(LANGAPI)/g | sed -f $(DEPSED_SED) >> depend.sed
  880. _depend_ :: $(DEP_DIRS)
  881. !@ cd $** \
  882. & echo Building DEPEND.DEF for subdirectory $** ... \
  883. & $(MKDEP) $(DEP_CINCS) *.c > depend.tmp \
  884. & $(MKDEP) $(DEP_CINCS) *.cpp >> depend.tmp \
  885. & $(MKDEP) $(DEP_CINCS) $(CPUSUBDIR)\*.c >> depend.tmp \
  886. & $(MKDEP) $(DEP_CINCS) $(CPUSUBDIR)\*.cpp >> depend.tmp \
  887. & $(MKDEP) $(DEP_AINCS) $(CPUSUBDIR)\*.asm >> depend.tmp \
  888. & sed -f ../../depend.sed depend.tmp > depend.def \
  889. & del depend.tmp \
  890. & cd ..\..
  891. !endif
  892. # ******** STRIPLIN=1 ********
  893. #<eof>