INetSDK.Mak 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694
  1. #----------------------------------------------------------------------------
  2. #
  3. # Description:
  4. # Make File Header for Internet Software Development Kit
  5. # Based in large part on BkOffice.Mak from the BackOffice SDK
  6. #
  7. # Copyright:
  8. # Copyright (C) Microsoft Corp. 1995-1999. All Rights Reserved.
  9. #
  10. #----------------------------------------------------------------------------
  11. !ifndef _INETSDK_MAK_ # Prevent multiple inclusions
  12. _INETSDK_MAK_ = 1
  13. #*********************************************
  14. #
  15. # Parameter Checking and Defaults
  16. #
  17. #*********************************************
  18. !ifndef Proj
  19. ! ERROR Component name (Proj) has not been defined.
  20. !endif
  21. !ifndef INCLUDE
  22. ! ERROR INCLUDE variable is empty; must include at least system include directory
  23. !endif
  24. !ifndef LIB
  25. ! ERROR LIB variable is empty; must include at least system lib directory
  26. !endif
  27. !ifdef USE_ISAPI
  28. !ifndef WWWSCRIPTS
  29. ! MESSAGE WWWSCRIPTS environment variable is empty; defaulting to .
  30. WWWSCRIPTS = .
  31. !endif
  32. !ifndef WWWROOT
  33. ! MESSAGE WWWROOT environment variable is empty; defaulting to .
  34. WWWROOT = .
  35. !endif
  36. !endif # USE_ISAPI
  37. !if defined(clean)
  38. $(Proj): Clean
  39. !else
  40. $(Proj): All
  41. !endif
  42. !if defined(nodebug)
  43. BLDTYPE=Retail
  44. !endif
  45. !if "$(BLDTYPE)" == "Retail" | "$(BLDTYPE)" == "RETAIL" | "$(BLDTYPE)" == "retail" | "$(BLDTYPE)" == "RTL" | "$(BLDTYPE)" == "rtl"
  46. BLDTYPE=Retail
  47. !else if "$(BLDTYPE)" == "Profile" | "$(BLDTYPE)" == "PROFILE" | "$(BLDTYPE)" == "profile"
  48. BLDTYPE=Profile
  49. !else if "$(BLDTYPE)" == "Debug" | "$(BLDTYPE)" == "DEBUG" | "$(BLDTYPE)" == "debug" | "$(BLDTYPE)" == "DBG" | "$(BLDTYPE)" == "dbg"
  50. BLDTYPE=Debug
  51. !else ifndef BLDTYPE
  52. BLDTYPE=Debug
  53. !else
  54. ! ERROR BLDTYPE must be either Retail, Profile or Debug.
  55. !endif
  56. !if "$(BLDTYPE)" == "Retail"
  57. nodebug=1
  58. !endif
  59. !ifndef CALL
  60. CALL=C
  61. !endif
  62. !ifndef PACK
  63. PACK=YES
  64. !endif
  65. !ifndef LOG
  66. LOG=NO
  67. !endif
  68. !ifndef WARNING_LEVEL
  69. WARNING_LEVEL=3
  70. !endif
  71. !ifndef PROCESSOR_ARCHITECTURE
  72. PROCESSOR_ARCHITECTURE = x86
  73. !endif # default to x86
  74. !ifndef CPU
  75. CPU=$(PROCESSOR_ARCHITECTURE)
  76. !if "$(CPU)"=="x86" | "$(CPU)"=="X86"
  77. CPU = i386
  78. !endif
  79. !endif
  80. !ifndef APPVER
  81. APPVER=5.0
  82. !endif
  83. !ifndef USE_EXCHANGE
  84. !include <win32.mak>
  85. !endif
  86. # Save build args for any recursive nmakes
  87. BLDARGS= BLDTYPE=$(BLDTYPE) LOG=$(LOG) CPU=$(CPU)
  88. #*********************************************
  89. #
  90. # Paths
  91. #
  92. #*********************************************
  93. !ifndef BKOFFICE
  94. !ifdef PROJROOT
  95. BKOFFICE=$(PROJROOT)\ # must add trailing backslash
  96. !else
  97. BKOFFICE=\BkOffice\ # assume a reasonable default
  98. !endif
  99. !endif
  100. !ifdef MAKEDIRS
  101. MkDest=
  102. !include $(MAKEDIRS)
  103. !else
  104. ResDir=.
  105. ObjDir=$(BLDTYPE)
  106. IncDir=$(BKOFFICE)Include
  107. LibDir=$(BKOFFICE)Lib
  108. !if "$(APPVER)" == "5.01"
  109. INCLUDE=$(INCLUDE);$(ObjDir);$(IncDir);
  110. !ELSE
  111. INCLUDE=$(ObjDir);$(IncDir);$(INCLUDE);
  112. !ENDIF
  113. LIB=$(LibDir);$(LIB);
  114. # Win95 doesn't support "&" on command line
  115. MkDest=@if not exist $(ObjDir) md $(ObjDir)
  116. MkWWWDest=@for %d in ($(WWWROOT)\SDK $(WWWROOT)\SDK\$(Proj) $(WWWSCRIPTS)\SDK) do @$(COMSPEC) /c if not exist %d md %d
  117. !endif
  118. # ObjList is used for making .Libs from .Defs, and as a convenience in other places.
  119. !ifndef ObjList
  120. ObjList=$(ObjDir)\$(@B).OBJ
  121. !endif
  122. #*********************************************
  123. #
  124. # Tools
  125. #
  126. #*********************************************
  127. MAKEEXE = nmake
  128. IMPLIB = lib
  129. CC = cl
  130. LIBU = lib
  131. LINK = link
  132. RC = rc
  133. MC = mc
  134. HC = start /wait hcrtf
  135. #*********************************************
  136. #
  137. # Flags
  138. #
  139. #*********************************************
  140. # CL is for all C and C++ files
  141. # -WX Warnings as errors
  142. # -J char becomes unsigned char
  143. #
  144. CL=$(cflags) -c -W$(WARNING_LEVEL) -J -Fo$@ /nologo $(CL)
  145. # LFLAGS is for all links
  146. LFLAGS=-nologo -nodefaultlib -machine:$(CPU) -out:$@ -incremental:no -pdb:none $(LFLAGS)
  147. # DLLFLAGS is for linking DLLs
  148. DLLFLAGS=-dll -map:$(ObjDir)\$(@B).map $(DLLFLAGS)
  149. # LIBFLAGS is for making libraries
  150. LIBFLAGS=-nologo -machine:$(CPU) -out:$@ $(LIBFLAGS)
  151. # RFLAGS is for Windows resources
  152. RFLAGS= -I$(ResDir) -fo$@ -DWIN32 $(noansi) -r -D_WIN32 $(RFLAGS)
  153. # MFLAGS is for the message compiler
  154. MFLAGS=-v -c -s -h $(ObjDir) -r $(ObjDir) -x $(ObjDir) $(MFLAGS)
  155. # MRFLAGS is for the resource compiler when used after the message compiler
  156. MRFLAGS=-l 409 -r -x -i$(ObjDir) $(MRFLAGS)
  157. # HFLAGS is for the help compiler
  158. HFLAGS=-xn
  159. #---------------------------------------------
  160. # Calling convention Flag
  161. #---------------------------------------------
  162. !if "$(CALL)"=="PASCAL"
  163. CL=-Gc $(CL)
  164. !endif
  165. #---------------------------------------------
  166. # Function Packaging Flag
  167. #---------------------------------------------
  168. !if "$(PACK)" == "YES"
  169. CL=-Gy $(CL)
  170. cDefines=-Gy $(cDefines)
  171. !endif
  172. #---------------------------------------------
  173. # Output Redirection
  174. #---------------------------------------------
  175. !if "$(LOG)" == "NO"
  176. LogCmd=
  177. !else
  178. LogCmd= >> $(ObjDir)\$(Proj).Out
  179. !endif
  180. #---------------------------------------------
  181. # Optimization Flags
  182. #---------------------------------------------
  183. !if "$(BLDTYPE)" == "Retail"
  184. CL=-O2 $(CL)
  185. !else if "$(BLDTYPE)" == "Profile"
  186. CL=-Od -Z7 -Gh $(CL)
  187. !else
  188. CL=-Od -Z7 $(CL)
  189. !endif
  190. #---------------------------------------------
  191. # CPU specific Flags
  192. #---------------------------------------------
  193. !if "$(CPU)" == "I386"
  194. CL = $(CL) -D_X86_=1
  195. scall = -Gz
  196. lflags = $(lflags) -align:0x1000
  197. !endif
  198. !if "$(CPU)" == "MIPS"
  199. CL = $(CL) -D_MIPS_=1
  200. scall =
  201. !endif
  202. !if "$(CPU)" == "PPC"
  203. CL = $(CL) -D_PPC_=1
  204. scall =
  205. lflags = $(lflags) -ignore:4078
  206. !endif
  207. !if "$(CPU)" == "ALPHA"
  208. CL = $(CL) -D_ALPHA_=1
  209. scall =
  210. !endif
  211. #---------------------------------------------
  212. # Windows version
  213. #---------------------------------------------
  214. !if "$(APPVER)" == "4.0"
  215. CL = $(CL) -DWINVER=0x0400
  216. rflags=$(rflags) -DWINVER=0x0400
  217. !endif
  218. #---------------------------------------------
  219. # Additional MFC Flags
  220. #---------------------------------------------
  221. !ifdef Use_MFC
  222. CL= $(CL) /GX /DSTRICT /DWIN32 /D_WINDOWS /D_MBCS /D_WINDLL
  223. CL= $(CL) /D_USRDLL -D_AFX_NO_BSTR_SUPPORT /D_AFXDLL
  224. RFLAGS = $(RFLAGS) /DSTRICT /DWIN32 /D_WINDOWS /D_MBCS /D_WINDLL /D_USRDLL -D_AFX_NO_BSTR_SUPPORT /D_AFXDLL
  225. !if "$(BLDTYPE)"=="Debug"
  226. CL= $(CL) /D_DEBUG
  227. RFLAGS = $(RFLAGS) /D_DEBUG
  228. !endif # BLDTYPE == Debug
  229. !ifdef crtdll # Use DLL CRT? (which is multithreaded)
  230. crtflags = -MD$(DbgLibFlag) $(crtflags)
  231. !elseif defined(crtst) && !defined(crtflags) # use Single Threaded CRT?
  232. crtflags = -ML$(DbgLibFlag) $(crtflags)
  233. !elseif defined(crtmt) # use Multithreaded CRT?
  234. crtflags = -MT$(DbgLibFlag) $(crtflags)
  235. !else # default to crtdll
  236. crtflags = -MD$(DbgLibFlag) $(crtflags)
  237. !endif # ifdef crtdll/else crtst/crtmt/else
  238. !endif # Use_MFC
  239. #---------------------------------------------
  240. # Build Type Flags (Retail/Debug)
  241. #---------------------------------------------
  242. !if "$(BLDTYPE)"=="Retail"
  243. CL=-DSHIP $(CL)
  244. LFLAGS = $(LFLAGS) -release
  245. !else if "$(BLDTYPE)"=="Profile"
  246. CL=-DDEBUG -DTEST -DPROFILE $(CL)
  247. LFLAGS = $(LFLAGS) -debug:mapped,partial -debugtype:coff -PROFILE
  248. libs = $(libs) CAP.LIB
  249. !else
  250. CL=-DDEBUG -DTEST $(CL)
  251. LFLAGS = $(LFLAGS) -debug:full -debugtype:cv
  252. !endif
  253. #---------------------------------------------
  254. # Determine CRT Flags
  255. #---------------------------------------------
  256. !ifdef crtdll # Use DLL CRT? (which is multithreaded)
  257. crtflags = -DWIN32 $(noansi) -D_WIN32 -D_MT -D_DLL
  258. !elseif defined(crtst) && !defined(crtflags) # use Single Threaded CRT?
  259. crtflags = -DWIN32 $(noansi) -D_WIN32
  260. !elseif defined(crtmt) # use Multithreaded CRT?
  261. crtflags = -DWIN32 $(noansi) -D_WIN32 -D_MT
  262. !else # default to crtdll
  263. crtflags = -DWIN32 $(noansi) -D_WIN32 -D_MT -D_DLL
  264. !endif # ifdef crtdll/else crtst/crtmt/else
  265. #---------------------------------------------
  266. # Determine app type Flags (console, gui, or DLL)
  267. #---------------------------------------------
  268. !if defined(console) # console app
  269. linkflags=$(linkflags) -subsystem:console -entry:mainCRTStartup
  270. !elseif !defined(dll) # not a dll, default to gui app
  271. linkflags=$(linkflags) -subsystem:windows -entry:WinMainCRTStartup
  272. !endif # ifdef console/else
  273. #*********************************************
  274. #
  275. # Libraries
  276. #
  277. #*********************************************
  278. !if "$(BLDTYPE)"=="Retail"
  279. DbgLibFlag =
  280. !else
  281. DbgLibFlag = d
  282. !endif
  283. #---------------------------------------------
  284. # Back Office SDK specific
  285. #---------------------------------------------
  286. !ifdef USE_SNA
  287. libs=$(libs) fmistr32.lib ihvLink.lib snacli.lib wappc32.lib wcpic32.lib
  288. libs=$(libs) wincsv32.lib winrui32.lib winsli32.lib
  289. !endif # USE_SNA
  290. !ifdef USE_SQL
  291. libs=$(libs) ntwdbLib.lib
  292. !endif # USE_SQL
  293. !ifdef USE_ODS
  294. libs=$(libs) opends60.lib
  295. !endif # USE_ODS
  296. !if defined(USE_MSM) || defined(USE_SMS)
  297. libs=$(libs) smsapi.lib objectty.lib
  298. !endif # USE_MSM || USE_SMS
  299. !ifdef USE_NETMON
  300. libs=$(libs) atalk.lib bhmon.lib bhsupp.lib browser.lib filter.lib friendly.lib
  301. libs=$(libs) hexedit.lib llc.lib nal.lib ncp.lib netlogon.lib nmapi.lib
  302. libs=$(libs) parser.lib ppp.lib slbs.lib toolbar.lib
  303. !endif # USE_NETMON
  304. !ifdef USE_EXCHANGE
  305. ! ifndef Building_ExchSDK
  306. libs=ExchSDK$(DbgLibFlag).Lib $(libs)
  307. ! endif # Building_ExchSDK
  308. libs=$(libs) Mapi32.Lib Uuid.Lib
  309. ! if "$(WARNING_LEVEL)" != "4"
  310. CL= $(CL) -WX
  311. ! endif
  312. DLLFLAGS = $(DLLFLAGS) -def:$(@B).def
  313. !endif # USE_EXCHANGE
  314. #---------------------------------------------
  315. # Determine CRT Libraries
  316. #---------------------------------------------
  317. libc = libc$(DbgLibFlag).lib oldnames.lib
  318. libcmt = libcmt$(DbgLibFlag).lib oldnames.lib
  319. libcdll = msvcrt$(DbgLibFlag).lib oldnames.lib
  320. !ifdef crtdll # Use DLL CRT?
  321. libcrt=$(libcdll)
  322. !elseif defined(crtst) && !defined(crtflags) # use Single Threaded CRT?
  323. libcrt=$(libc)
  324. !elseif defined(crtmt) # use Multithreaded CRT?
  325. libcrt=$(libcmt)
  326. !else # default to crtdll
  327. libcrt=$(libcdll)
  328. !endif # endif crtdll/else crtst/crtmt/else
  329. #---------------------------------------------
  330. # Determine app type libraries (console, gui, or DLL)
  331. #---------------------------------------------
  332. !ifdef dll # is this a DLL?
  333. linklibs=$(libs) kernel32.lib advapi32.lib user32.lib gdi32.lib comctl32.lib comdlg32.lib ole32.lib oleaut32.lib uuid.lib winspool.lib version.lib
  334. !elseif defined(console) # not a DLL, perhaps a console app
  335. linklibs=$(libs) kernel32.lib advapi32.lib user32.lib ole32.lib version.lib
  336. !else # default to gui app
  337. linklibs=$(libs) kernel32.lib $(optlibs) advapi32.lib user32.lib gdi32.lib comdlg32.lib ole32.lib oleaut32.lib uuid.lib winspool.lib version.lib
  338. !endif # ifdef dll/else console/else
  339. LinkLibs = $(LibList) $(linklibs) $(libcrt)
  340. !if "$(BLDTYPE)" == "Profile"
  341. LinkLibs = $(LinkLibs) cap.lib
  342. !endif
  343. #---------------------------------------------
  344. # Additional MFC Libraries
  345. #---------------------------------------------
  346. # Note that linking order is important when using MFC!
  347. !ifdef Use_MFC
  348. !if !defined(nodebug)
  349. linklibs = mfco42$(DbgLibFlag).lib $(linklibs)
  350. !endif
  351. linklibs = mfcs42$(DbgLibFlag).lib mfc42$(DbgLibFlag).lib $(linklibs)
  352. !endif
  353. #*********************************************
  354. #
  355. # Inference Rules
  356. #
  357. #*********************************************
  358. .SUFFIXES:
  359. .SUFFIXES: .c .cpp .obj .def .lib .dll .exe .mc .rc .res .exp .bin .hpj .htm .stm .h .mak .cpl .gif .jpg .cxx .hxx .ocx
  360. # C Targets
  361. .c{$(ObjDir)\}.obj:
  362. $(MkDest)
  363. !if "$(LOG)"=="YES"
  364. @echo $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
  365. !endif
  366. $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
  367. # C++ Targets
  368. .cpp{$(ObjDir)\}.obj:
  369. $(MkDest)
  370. !if "$(LOG)"=="YES"
  371. @echo $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
  372. !endif
  373. $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
  374. # C++ Targets
  375. .cxx{$(ObjDir)\}.obj:
  376. $(MkDest)
  377. !if "$(LOG)"=="YES"
  378. @echo $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
  379. !endif
  380. $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
  381. # Resource Targets from .RC files
  382. {$(ResDir)\}.rc{$(ObjDir)\}.res:
  383. $(MkDest)
  384. !if "$(LOG)"=="YES"
  385. @echo $(RC) $(RFLAGS) $(ResDir)\$(@B).rc $(LogCmd)
  386. !endif
  387. $(RC) $(RFLAGS) $(ResDir)\$(@B).rc $(LogCmd)
  388. # Resource Targets from .MC files
  389. .mc{$(ObjDir)\}.res:
  390. $(MkDest)
  391. !if "$(LOG)"=="YES"
  392. @echo $(MC) $(MFLAGS) $< $(LogCmd)
  393. !endif
  394. $(MC) $(MFLAGS) $< $(LogCmd)
  395. !if "$(LOG)"=="YES"
  396. @echo $(RC) $(MRFLAGS) -fo$@ $(ObjDir)\$(@B).rc $(LogCmd)
  397. !endif
  398. $(RC) $(MRFLAGS) -fo$@ $(ObjDir)\$(@B).rc $(LogCmd)
  399. # Import Libraries
  400. .Def{$(ObjDir)\}.lib:
  401. !if "$(LOG)"=="YES"
  402. @echo $(IMPLIB) -nologo -machine:$(CPU) -def:$(@B).Def $(ObjList) -OUT:$@ $(LogCmd)
  403. !endif
  404. $(IMPLIB) -nologo -machine:$(CPU) -def:$(@B).Def $(ObjList) -OUT:$@ $(LogCmd)
  405. .Def{$(ObjDir)\}.exp:
  406. !if "$(LOG)"=="YES"
  407. @echo $(IMPLIB) -nologo -machine:$(CPU) -def:$(@B).Def -OUT:$(@R).Lib $(ObjDir)\*.Obj $(STATICLIBS) $(LogCmd)
  408. !endif
  409. $(IMPLIB) -nologo -machine:$(CPU) -def:$(@B).Def -OUT:$(@R).Lib $(ObjDir)\*.Obj $(STATICLIBS) $(LogCmd)
  410. # Static Libraries
  411. {$(ObjDir)\}.obj{$(ObjDir)\}.lib:
  412. !if "$(LOG)"=="YES"
  413. @echo $(LIBU) $(LIBFLAGS) $** $(LogCmd)
  414. !endif
  415. $(LIBU) $(LIBFLAGS) $** $(LogCmd)
  416. # DLLs
  417. {$(ObjDir)\}.obj{$(ObjDir)\}.dll:
  418. @echo $** > $(ObjDir)\objfiles.lst
  419. @echo $(LinkLibs) > $(ObjDir)\libfiles.lst
  420. !if "$(LOG)"=="YES"
  421. @echo $(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  422. !endif
  423. $(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  424. # OCs
  425. {$(ObjDir)\}.obj{$(ObjDir)\}.Ocx:
  426. @echo $** > $(ObjDir)\objfiles.lst
  427. @echo $(LinkLibs) > $(ObjDir)\libfiles.lst
  428. !if "$(LOG)"=="YES"
  429. @echo $(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  430. !endif
  431. $(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  432. # CPLs
  433. {$(ObjDir)\}.obj{$(ObjDir)\}.Cpl:
  434. @echo $** > $(ObjDir)\objfiles.lst
  435. @echo $(LinkLibs) > $(ObjDir)\libfiles.lst
  436. !if "$(LOG)"=="YES"
  437. @echo $(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  438. !endif
  439. $(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  440. # BINs
  441. {$(ObjDir)\}.obj{$(ObjDir)\}.bin:
  442. @echo $(LinkLibs) > $(ObjDir)\libfiles.lst
  443. !if "$(LOG)"=="YES"
  444. @echo $(LINK) $(LFLAGS) $(linkflags) $** @$(ObjDir)\libfiles.lst $(LogCmd)
  445. !endif
  446. $(LINK) $(LFLAGS) $(linkflags) $** @$(ObjDir)\libfiles.lst $(LogCmd)
  447. # EXEs
  448. {$(ObjDir)\}.obj{$(ObjDir)\}.exe:
  449. @echo $** > $(ObjDir)\objfiles.lst
  450. @echo $(LinkLibs) > $(ObjDir)\libfiles.lst
  451. !if "$(LOG)"=="YES"
  452. @echo $(LINK) $(LFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  453. !endif
  454. $(LINK) $(LFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  455. # Helpfiles
  456. .hpj{$(ObjDir)\}.hlp:
  457. $(MkDest)
  458. !if "$(LOG)"=="YES"
  459. @echo $(HC) $(HFLAGS) $(@B).Hpj
  460. !endif
  461. $(HC) $(HFLAGS) $(@B).Hpj
  462. !if "$(LOG)"=="YES"
  463. @echo xcopy $(@F) $(ObjDir)
  464. !endif
  465. -xcopy $(@F) $(ObjDir) $(LogCmd)
  466. # ISAPI DLLs to Web Roots
  467. {$(ObjDir)}.Dll{$(WWWSCRIPTS)\SDK}.Dll:
  468. $(MkWWWDest)
  469. !copy $? $(WWWSCRIPTS)\SDK
  470. # Test EXEs to Web Roots
  471. {$(ObjDir)}.Exe{$(WWWSCRIPTS)\SDK}.Exe:
  472. $(MkWWWDest)
  473. !copy $? $(WWWSCRIPTS)\SDK
  474. # HTML files to webroots
  475. .Htm{$(WWWROOT)\SDK\$(Proj)}.Htm:
  476. $(MkWWWDest)
  477. !copy $? $(WWWROOT)\SDK\$(Proj)
  478. # GIF files to webroots
  479. .Gif{$(WWWROOT)\SDK\$(Proj)}.Gif:
  480. $(MkWWWDest)
  481. !copy $? $(WWWROOT)\SDK\$(Proj)
  482. # JPEG files to webroots
  483. .Jpg{$(WWWROOT)\SDK\$(Proj)}.Jpg:
  484. $(MkWWWDest)
  485. !copy $? $(WWWROOT)\SDK\$(Proj)
  486. # ISAPI sources to web roots
  487. .Cpp{$(WWWROOT)\SDK\$(Proj)}.Cpp:
  488. $(MkWWWDest)
  489. !copy $? $(WWWROOT)\SDK\$(Proj)
  490. # ISAPI sources to web roots
  491. .C{$(WWWROOT)\SDK\$(Proj)}.C:
  492. $(MkWWWDest)
  493. !copy $? $(WWWROOT)\SDK\$(Proj)
  494. # ISAPI sources to web roots
  495. .h{$(WWWROOT)\SDK\$(Proj)}.h:
  496. $(MkWWWDest)
  497. !copy $? $(WWWROOT)\SDK\$(Proj)
  498. # ISAPI sources to web roots
  499. .Def{$(WWWROOT)\SDK\$(Proj)}.Def:
  500. $(MkWWWDest)
  501. !copy $? $(WWWROOT)\SDK\$(Proj)
  502. # ISAPI sources to web roots
  503. .Mak{$(WWWROOT)\SDK\$(Proj)}.Mak:
  504. $(MkWWWDest)
  505. !copy $? $(WWWROOT)\SDK\$(Proj)
  506. #*********************************************
  507. #
  508. # Make Targets
  509. #
  510. #*********************************************
  511. #---------------------------------------------
  512. # List Output Files
  513. #---------------------------------------------
  514. ListDir:
  515. dir $(ObjDir)
  516. #---------------------------------------------
  517. # Display Output Listing File
  518. #---------------------------------------------
  519. !ifndef ERRVIEW
  520. ERRVIEW=start notepad.exe
  521. !endif
  522. ListOut:
  523. $(ERRVIEW) $(ObjDir)\$(Proj).out
  524. #---------------------------------------------
  525. # Delete Output Listing File
  526. #---------------------------------------------
  527. DelOut:
  528. del $(ObjDir)\$(Proj).out
  529. #---------------------------------------------
  530. # Clean Output Directories
  531. #---------------------------------------------
  532. clean:
  533. $(MkDest)
  534. !if "$(OS)" == "Windows_NT"
  535. del /q $(ObjDir)\*.obj \
  536. $(ObjDir)\*.out \
  537. $(ObjDir)\*.h \
  538. $(ObjDir)\*.dbg \
  539. $(ObjDir)\*.ocx \
  540. $(ObjDir)\*.log \
  541. $(ObjDir)\*.lib \
  542. $(ObjDir)\*.exe \
  543. $(ObjDir)\*.dll \
  544. $(ObjDir)\*.map \
  545. $(ObjDir)\*.res \
  546. $(ObjDir)\*.rc \
  547. $(ObjDir)\*.bin \
  548. $(ObjDir)\*.lst \
  549. $(ObjDir)\*.blt \
  550. $(ObjDir)\*.hlp \
  551. $(ObjDir)\*.srl \
  552. $(ObjDir)\*.exp >NUL 2>NUL
  553. !else # Win95 doesn't support "2>" on command line, multiple files on a Del command, or /q
  554. erase $(ObjDir)\*.obj >NUL
  555. erase $(ObjDir)\*.out >NUL
  556. erase $(ObjDir)\*.h >NUL
  557. erase $(ObjDir)\*.dbg >NUL
  558. erase $(ObjDir)\*.ocx >NUL
  559. erase $(ObjDir)\*.log >NUL
  560. erase $(ObjDir)\*.lib >NUL
  561. erase $(ObjDir)\*.exe >NUL
  562. erase $(ObjDir)\*.dll >NUL
  563. erase $(ObjDir)\*.map >NUL
  564. erase $(ObjDir)\*.res >NUL
  565. erase $(ObjDir)\*.rc >NUL
  566. erase $(ObjDir)\*.bin >NUL
  567. erase $(ObjDir)\*.lst >NUL
  568. erase $(ObjDir)\*.blt >NUL
  569. erase $(ObjDir)\*.hlp >NUL
  570. erase $(ObjDir)\*.srl >NUL
  571. erase $(ObjDir)\*.exp >NUL
  572. !endif # OS == Windows_NT
  573. !endif # _INETSDK_MAK_