home *** CD-ROM | disk | FTP | other *** search
/ Chip Special: HTML & Java / Chip-Special_1997-01_HTML-a-Java.bin / actvx31.sdk / coresdk / inetsdk / include / inetsdk.mak < prev    next >
Encoding:
Text File  |  1996-10-25  |  20.5 KB  |  742 lines

  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-1996.  All Rights Reserved.
  9. #
  10. #----------------------------------------------------------------------------
  11.  
  12. !ifndef _INETSDK_MAK_       # Prevent multiple inclusions
  13. _INETSDK_MAK_ = 1
  14.  
  15. !ifndef _MFC_LIB_
  16. _MFC_LIB_ = 40
  17. !endif
  18.  
  19. #*********************************************
  20. #
  21. # Parameter Checking and Defaults
  22. #
  23. #*********************************************
  24. !ifndef Proj
  25. !     ERROR Component name (Proj) has not been defined.
  26. !endif
  27.  
  28. !ifndef INCLUDE
  29. !   ERROR INCLUDE variable is empty; must include at least system include directory
  30. !endif
  31.  
  32. !ifndef LIB
  33. !   ERROR LIB variable is empty; must include at least system lib directory
  34. !endif
  35.  
  36. !if !exist ($(MSTOOLS)\Include\WinCrypt.h)
  37. !   MESSAGE WARNING!  Portions of this SDK require that the January 1996 (or later) Win32 SDK is installed.
  38. !   MESSAGE This SDK was not found.  Build problems are likely.  You have been warned.
  39. !endif
  40.  
  41. !ifdef USE_ISAPI
  42.  
  43. !ifndef WWWSCRIPTS
  44. !   MESSAGE WWWSCRIPTS environment variable is empty; defaulting to .
  45. WWWSCRIPTS = .
  46. !endif
  47.  
  48. !ifndef WWWROOT
  49. !   MESSAGE WWWROOT environment variable is empty; defaulting to .
  50. WWWROOT = .
  51. !endif
  52.  
  53. !endif # USE_ISAPI
  54.  
  55. !if defined(clean)
  56. $(Proj): Clean
  57. !else
  58. $(Proj): All
  59. !endif
  60.  
  61. !if defined(nodebug)
  62. BLDTYPE=Retail
  63. !endif
  64.  
  65. !if "$(BLDTYPE)" == "Retail" | "$(BLDTYPE)" == "RETAIL" | "$(BLDTYPE)" == "retail" | "$(BLDTYPE)" == "RTL" | "$(BLDTYPE)" == "rtl"
  66. BLDTYPE=Retail
  67. !else if "$(BLDTYPE)" == "Profile" | "$(BLDTYPE)" == "PROFILE" | "$(BLDTYPE)" == "profile"
  68. BLDTYPE=Profile
  69. !else if "$(BLDTYPE)" == "Debug" | "$(BLDTYPE)" == "DEBUG" | "$(BLDTYPE)" == "debug" | "$(BLDTYPE)" == "DBG" | "$(BLDTYPE)" == "dbg"
  70. BLDTYPE=Debug
  71. !else ifndef BLDTYPE
  72. BLDTYPE=Debug
  73. !else
  74. !   ERROR BLDTYPE must be either Retail, Profile or Debug.
  75. !endif   
  76.  
  77. !if "$(BLDTYPE)" == "Retail"
  78. nodebug=1
  79. !endif
  80.  
  81. !ifndef CALL
  82. CALL=C
  83. !endif
  84.  
  85. !ifndef PACK
  86. PACK=YES
  87. !endif
  88.  
  89. !ifndef LOG
  90. LOG=YES
  91. !endif
  92.  
  93. !ifndef WARNING_LEVEL
  94. WARNING_LEVEL=3
  95. !endif
  96.  
  97. !ifndef PROCESSOR_ARCHITECTURE
  98. PROCESSOR_ARCHITECTURE = x86
  99. !endif # default to x86
  100.  
  101. !ifndef CPU
  102. CPU=$(PROCESSOR_ARCHITECTURE)
  103. !if "$(CPU)"=="x86" | "$(CPU)"=="X86"
  104. CPU = i386
  105. !endif
  106. !endif
  107.  
  108. !ifndef APPVER
  109. APPVER=4.0
  110. !endif
  111.  
  112. !ifndef USE_EXCHANGE
  113. !include <win32.mak>
  114. !endif
  115.  
  116. # Save build args for any recursive nmakes 
  117. BLDARGS= BLDTYPE=$(BLDTYPE) LOG=$(LOG) CPU=$(CPU)
  118.  
  119. #*********************************************
  120. #
  121. # Paths
  122. #
  123. #*********************************************
  124.  
  125. !ifndef BKOFFICE
  126. !ifdef PROJROOT
  127. BKOFFICE=$(PROJROOT)\        # must add trailing backslash
  128. !else
  129. BKOFFICE=\BkOffice\          # assume a reasonable default
  130. !endif
  131. !endif
  132.  
  133. !ifdef MAKEDIRS
  134. MkDest=
  135. !include $(MAKEDIRS)
  136. !else
  137. ResDir=.
  138. ObjDir=$(BLDTYPE)
  139. IncDir=$(BKOFFICE)Include
  140. LibDir=$(BKOFFICE)Lib
  141.  
  142. INCLUDE=$(ObjDir);$(IncDir);$(INCLUDE);
  143. LIB=$(LibDir);$(LIB);
  144.  
  145. # Win95 doesn't support "&" on command line
  146. MkDest=@if not exist $(ObjDir) md $(ObjDir)
  147.  
  148. MkWWWDest=@for %d in ($(WWWROOT)\SDK $(WWWROOT)\SDK\$(Proj) $(WWWSCRIPTS)\SDK) do @$(COMSPEC) /c if not exist %d md %d
  149.  
  150. !endif
  151.  
  152. # ObjList is used for making .Libs from .Defs, and as a convenience in other places.
  153.  
  154. !ifndef ObjList
  155. ObjList=$(ObjDir)\$(@B).OBJ
  156. !endif
  157.  
  158. #*********************************************
  159. #
  160. # Tools
  161. #
  162. #*********************************************
  163.  
  164. MAKEEXE = nmake
  165. IMPLIB  = lib
  166. CC      = cl
  167. LIBU    = lib
  168. LINK    = link
  169. RC      = rc
  170. MC      = mc
  171. HC      = start /wait hcrtf
  172.  
  173.  
  174. #*********************************************
  175. #
  176. # Flags
  177. #
  178. #*********************************************
  179.  
  180. # CL is for all C and C++ files
  181. #   -WX     Warnings as errors
  182. #   -J      char becomes unsigned char
  183. #   
  184. CL=$(cflags) -c -W$(WARNING_LEVEL) -J -Fo$@ /nologo $(CL)
  185.  
  186. # LFLAGS is for all links
  187. LFLAGS=-nologo -nodefaultlib -machine:$(CPU) -out:$@ -incremental:no -pdb:none $(LFLAGS)
  188.  
  189. # DLLFLAGS is for linking DLLs
  190. DLLFLAGS=-dll -map:$(ObjDir)\$(@B).map $(DLLFLAGS)
  191.  
  192. # LIBFLAGS is for making libraries
  193. LIBFLAGS=-nologo -machine:$(CPU) -out:$@ $(LIBFLAGS)
  194.  
  195. # RFLAGS is for Windows resources
  196. RFLAGS= -I$(ResDir) -fo$@ -DWIN32 $(noansi) -r -D_WIN32 $(RFLAGS) 
  197.  
  198. # MFLAGS is for the message compiler
  199. MFLAGS=-v -c -s -h $(ObjDir) -r $(ObjDir) -x $(ObjDir) $(MFLAGS)
  200.  
  201. # MRFLAGS is for the resource compiler when used after the message compiler
  202. MRFLAGS=-l 409 -r -x -i$(ObjDir) $(MRFLAGS)
  203.  
  204. # HFLAGS is for the help compiler 
  205. HFLAGS=-xn
  206.  
  207. #---------------------------------------------
  208. # Calling convention Flag
  209. #---------------------------------------------
  210.  
  211. !if "$(CALL)"=="PASCAL"
  212. CL=-Gc $(CL)
  213. !endif
  214.  
  215. #---------------------------------------------
  216. # Function Packaging Flag
  217. #---------------------------------------------
  218.  
  219. !if "$(PACK)" == "YES"
  220. CL=-Gy $(CL)
  221. cDefines=-Gy $(cDefines)
  222. !endif
  223.  
  224. #---------------------------------------------
  225. # Output Redirection
  226. #---------------------------------------------
  227. !if "$(LOG)" == "NO"
  228. LogCmd=
  229. !else
  230. LogCmd= >> $(ObjDir)\$(Proj).Out
  231. !endif 
  232.  
  233. #---------------------------------------------
  234. # Optimization Flags
  235. #---------------------------------------------
  236. !if "$(BLDTYPE)" == "Retail"
  237. CL=-O2 $(CL)
  238. !else if "$(BLDTYPE)" == "Profile"
  239. CL=-Od -Z7 -Gh $(CL)
  240. !else
  241. CL=-Od -Z7 $(CL)
  242. !endif
  243.  
  244. #---------------------------------------------
  245. # CPU specific Flags
  246. #---------------------------------------------
  247. !if "$(CPU)" == "I386"
  248. CL = $(CL) -D_X86_=1
  249. scall  = -Gz
  250. lflags   = $(lflags) -align:0x1000
  251. !endif
  252.  
  253. !if "$(CPU)" == "MIPS"
  254. CL = $(CL) -D_MIPS_=1
  255. scall  =
  256. !endif
  257.  
  258. !if "$(CPU)" == "PPC"
  259. CL = $(CL) -D_PPC_=1
  260. scall  =
  261. lflags   = $(lflags) -ignore:4078
  262. !endif
  263.  
  264. !if "$(CPU)" == "ALPHA"
  265. CL = $(CL) -D_ALPHA_=1
  266. scall  =
  267. !endif
  268.  
  269. #---------------------------------------------
  270. # Windows version
  271. #---------------------------------------------
  272. !if "$(APPVER)" == "4.0"
  273. CL = $(CL) -DWINVER=0x0400
  274. rflags=$(rflags) -DWINVER=0x0400
  275. !endif
  276.  
  277. #---------------------------------------------
  278. # Additional MFC Flags
  279. #---------------------------------------------
  280.  
  281. !ifdef Use_MFC
  282. CL= $(CL) /GX /DSTRICT /DWIN32 /D_WINDOWS /D_MBCS /D_WINDLL 
  283. CL= $(CL) /D_USRDLL -D_AFX_NO_BSTR_SUPPORT /D_AFXDLL
  284.  
  285. RFLAGS = $(RFLAGS) /DSTRICT /DWIN32 /D_WINDOWS /D_MBCS /D_WINDLL /D_USRDLL -D_AFX_NO_BSTR_SUPPORT /D_AFXDLL
  286.  
  287. !if "$(BLDTYPE)"=="Debug"
  288. CL= $(CL) /D_DEBUG
  289. RFLAGS = $(RFLAGS) /D_DEBUG
  290. !endif # BLDTYPE == Debug
  291.  
  292. !ifdef crtdll                                 # Use DLL CRT? (which is multithreaded)
  293. crtflags = -MD$(DbgLibFlag) $(crtflags)
  294. !elseif defined(crtst) && !defined(crtflags)  # use Single Threaded CRT?
  295. crtflags = -ML$(DbgLibFlag) $(crtflags)
  296. !elseif defined(crtmt)                        # use Multithreaded CRT?
  297. crtflags = -MT$(DbgLibFlag) $(crtflags)
  298. !else                                         # default to crtdll
  299. crtflags = -MD$(DbgLibFlag) $(crtflags)
  300. !endif                                        # ifdef crtdll/else crtst/crtmt/else
  301.  
  302. !endif # Use_MFC
  303.  
  304. #---------------------------------------------
  305. # BaseCtl Framework Flags
  306. #---------------------------------------------
  307. !ifdef USE_BASECTL
  308.  
  309. # flags to support the BaseCtl framework.  Only DLLs are supported.
  310.  
  311. dll = 1
  312.  
  313. # These are "extra" libs beyond the standard set that BaseCtl controls need
  314.  
  315. libs= urlmon.lib wininet.lib shell32.lib oleaut32.lib
  316.  
  317. !if !exist($(INETSDK)\Samples\BaseCtl\Include)
  318. !  error INETSDK environment variable must point to the root of the ActiveX SDK.
  319. !endif
  320.  
  321. !ifdef nodebug
  322. libs = $(libs) $(INETSDK)\Samples\BaseCtl\Lib\CtlFwR32.Lib
  323. !else
  324. libs = $(libs) $(INETSDK)\Samples\BaseCtl\Lib\CtlFwD32.Lib
  325. !endif
  326.  
  327. # Commands to be added to the compile line... in this case to locate headers and to
  328. # override the warning level on certain behaviors that VC++ 4.1 started flagging as
  329. # warnings that causes warnigns in system headers.
  330.  
  331. cDefines= -I$(INETSDK)\Samples\BaseCtl\Include $(cDefines) -FI$(INETSDK)\Samples\BaseCtl\Include\VC41Warn.h
  332. RFLAGS= -I$(INETSDK)\Samples\BaseCtl\Include $(RFLAGS)
  333.  
  334. linkflags = $(linkflags) -Def:$(Proj).Def
  335.  
  336. Register: $(ObjDir)\$(Proj).Ocx
  337.   regsvr32 /s $?
  338.  
  339. # provide a standard rule for Odl generated headers named $(ObjDir)\$(Proj)Ifc.h
  340.  
  341. $(ObjDir)\$(Proj)Ifc.h $(ObjDir)\$(Proj).Tlb: $(Proj).Odl
  342.   $(MkDest)
  343.   mktyplib /DWIN32 -I$(INETSDK)\Samples\BaseCtl\Include /h $(ObjDir)\$(Proj)Ifc.h /tlb $(ObjDir)\$(Proj).tlb $(Proj).Odl
  344.  
  345. !endif # USE_BASECTL
  346.  
  347. #---------------------------------------------
  348. # Build Type Flags  (Retail/Debug)
  349. #---------------------------------------------
  350.  
  351. !if "$(BLDTYPE)"=="Retail"
  352. CL=-DSHIP $(CL)
  353. LFLAGS = $(LFLAGS) -release
  354. !else if "$(BLDTYPE)"=="Profile"
  355. CL=-DDEBUG -DTEST -DPROFILE $(CL)
  356. LFLAGS = $(LFLAGS) -debug:mapped,partial -debugtype:coff -PROFILE
  357. libs = $(libs) CAP.LIB
  358. !else 
  359. CL=-DDEBUG -DTEST $(CL) 
  360. LFLAGS = $(LFLAGS) -debug:full -debugtype:cv
  361. !endif
  362.  
  363.  
  364. #---------------------------------------------
  365. # Determine CRT Flags
  366. #---------------------------------------------
  367.  
  368. !ifdef crtdll                                 # Use DLL CRT? (which is multithreaded)
  369. crtflags = -DWIN32 $(noansi) -D_WIN32 -D_MT -D_DLL
  370. !elseif defined(crtst) && !defined(crtflags)  # use Single Threaded CRT?
  371. crtflags = -DWIN32 $(noansi) -D_WIN32
  372. !elseif defined(crtmt)                        # use Multithreaded CRT?
  373. crtflags = -DWIN32 $(noansi) -D_WIN32 -D_MT
  374. !else                                         # default to crtdll
  375. crtflags = -DWIN32 $(noansi) -D_WIN32 -D_MT -D_DLL
  376. !endif                                        # ifdef crtdll/else crtst/crtmt/else
  377.  
  378. #---------------------------------------------
  379. # Determine app type Flags (console, gui, or DLL)
  380. #---------------------------------------------
  381.  
  382. !if defined(console)                          # console app
  383. linkflags=$(linkflags) -subsystem:console -entry:mainCRTStartup
  384. !elseif !defined(dll)                         # not a dll, default to gui app
  385. linkflags=$(linkflags) -subsystem:windows -entry:WinMainCRTStartup
  386. !endif                                        # ifdef console/else
  387.  
  388.  
  389.  
  390. #*********************************************
  391. #
  392. # Libraries
  393. #
  394. #*********************************************
  395.  
  396. !if "$(BLDTYPE)"=="Retail"
  397. DbgLibFlag =
  398. !else
  399. DbgLibFlag = d
  400. !endif
  401.  
  402. #---------------------------------------------
  403. # Back Office SDK specific
  404. #---------------------------------------------
  405. !ifdef USE_SNA
  406. libs=$(libs) fmistr32.lib ihvLink.lib snacli.lib wappc32.lib wcpic32.lib
  407. libs=$(libs) wincsv32.lib winrui32.lib winsli32.lib
  408. !endif # USE_SNA
  409.  
  410. !ifdef USE_SQL
  411. libs=$(libs) ntwdbLib.lib
  412. !endif # USE_SQL
  413.  
  414. !ifdef USE_ODS
  415. libs=$(libs) opends60.lib
  416. !endif # USE_ODS
  417.  
  418. !if defined(USE_MSM) || defined(USE_SMS)
  419. libs=$(libs) smsapi.lib objectty.lib
  420. !endif # USE_MSM || USE_SMS
  421.  
  422. !ifdef USE_NETMON
  423. libs=$(libs) atalk.lib bhmon.lib bhsupp.lib browser.lib filter.lib friendly.lib
  424. libs=$(libs) hexedit.lib llc.lib nal.lib ncp.lib netlogon.lib nmapi.lib
  425. libs=$(libs) parser.lib ppp.lib slbs.lib toolbar.lib
  426. !endif # USE_NETMON
  427.  
  428. !ifdef USE_EXCHANGE
  429. !  ifndef Building_ExchSDK
  430. libs=ExchSDK$(DbgLibFlag).Lib $(libs)
  431. !  endif # Building_ExchSDK
  432.  
  433. libs=$(libs) Mapi32.Lib Uuid.Lib
  434.  
  435. !  if "$(WARNING_LEVEL)" != "4"
  436. CL= $(CL) -WX
  437. !  endif
  438.  
  439. DLLFLAGS = $(DLLFLAGS) -def:$(@B).def
  440. !endif # USE_EXCHANGE
  441.  
  442. #---------------------------------------------
  443. # Determine CRT Libraries
  444. #---------------------------------------------
  445. libc = libc$(DbgLibFlag).lib oldnames.lib
  446. libcmt = libcmt$(DbgLibFlag).lib oldnames.lib
  447. libcdll = msvcrt$(DbgLibFlag).lib oldnames.lib
  448.  
  449. !ifdef crtdll                                 # Use DLL CRT?
  450. libcrt=$(libcdll)
  451. !elseif defined(crtst) && !defined(crtflags)  # use Single Threaded CRT?
  452. libcrt=$(libc)
  453. !elseif defined(crtmt)                        # use Multithreaded CRT?
  454. libcrt=$(libcmt)
  455. !else                                         # default to crtdll
  456. libcrt=$(libcdll)
  457. !endif                                        # endif crtdll/else crtst/crtmt/else
  458.  
  459. #---------------------------------------------
  460. # Determine app type libraries (console, gui, or DLL)
  461. #---------------------------------------------
  462.  
  463. !ifdef dll                                    # is this a DLL?
  464. linklibs=$(libs) kernel32.lib advapi32.lib user32.lib gdi32.lib comctl32.lib comdlg32.lib ole32.lib oleaut32.lib uuid.lib winspool.lib version.lib
  465. !elseif defined(console)                      # not a DLL, perhaps a console app
  466. linklibs=$(libs) kernel32.lib advapi32.lib user32.lib ole32.lib version.lib
  467. !else                                         # default to gui app
  468. linklibs=$(libs) kernel32.lib $(optlibs) advapi32.lib user32.lib gdi32.lib comdlg32.lib ole32.lib oleaut32.lib uuid.lib winspool.lib version.lib
  469. !endif                                        # ifdef dll/else console/else
  470.  
  471. LinkLibs = $(LibList) $(linklibs) $(libcrt)
  472.  
  473. !if "$(BLDTYPE)" == "Profile"
  474. LinkLibs = $(LinkLibs) cap.lib
  475. !endif
  476.  
  477.  
  478. #---------------------------------------------
  479. # Additional MFC Libraries
  480. #---------------------------------------------
  481. # Note that linking order is important when using MFC!
  482.  
  483. !ifdef Use_MFC
  484. !if !defined(nodebug)
  485. linklibs = mfco$(_MFC_LIB_)$(DbgLibFlag).lib $(linklibs)
  486. !endif
  487. linklibs = mfcs$(_MFC_LIB_)$(DbgLibFlag).lib mfc$(_MFC_LIB_)$(DbgLibFlag).lib $(linklibs)
  488. !endif
  489.  
  490.  
  491. #*********************************************
  492. #
  493. # Inference Rules
  494. #
  495. #*********************************************
  496. .SUFFIXES:
  497. .SUFFIXES: .c .cpp .obj .def .lib .dll .exe .mc .rc .res .exp .bin .hpj .htm .stm .h .mak .cpl .gif .jpg .cxx .hxx .ocx
  498.  
  499. # C Targets
  500. .c{$(ObjDir)\}.obj:
  501.     $(MkDest)
  502. !if "$(LOG)"=="YES"
  503.     @echo $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
  504. !endif
  505.     $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
  506.  
  507. # C++ Targets
  508. .cpp{$(ObjDir)\}.obj:
  509.     $(MkDest)
  510. !if "$(LOG)"=="YES"
  511.     @echo $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
  512. !endif
  513.     $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
  514.  
  515. # C++ Targets
  516. .cxx{$(ObjDir)\}.obj:
  517.     $(MkDest)
  518. !if "$(LOG)"=="YES"
  519.     @echo $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
  520. !endif
  521.     $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
  522.  
  523. # Resource Targets from .RC files
  524. {$(ResDir)\}.rc{$(ObjDir)\}.res:
  525.     $(MkDest)
  526. !if "$(LOG)"=="YES"
  527.     @echo $(RC) $(RFLAGS) $(ResDir)\$(@B).rc $(LogCmd)
  528. !endif
  529.     $(RC) $(RFLAGS) $(ResDir)\$(@B).rc $(LogCmd)
  530.  
  531. # Resource Targets from .MC files
  532. .mc{$(ObjDir)\}.res:
  533.     $(MkDest)
  534. !if "$(LOG)"=="YES"
  535.     @echo $(MC) $(MFLAGS) $< $(LogCmd)
  536. !endif
  537.     $(MC) $(MFLAGS) $< $(LogCmd)
  538. !if "$(LOG)"=="YES"
  539.     @echo $(RC) $(MRFLAGS) -fo$@ $(ObjDir)\$(@B).rc $(LogCmd)
  540. !endif
  541.     $(RC) $(MRFLAGS) -fo$@ $(ObjDir)\$(@B).rc $(LogCmd)
  542.  
  543. # Import Libraries
  544. .Def{$(ObjDir)\}.lib:
  545. !if "$(LOG)"=="YES"
  546.     @echo $(IMPLIB) -nologo -machine:$(CPU) -def:$(@B).Def $(ObjList) -OUT:$@ $(LogCmd)
  547. !endif
  548.     $(IMPLIB) -nologo -machine:$(CPU) -def:$(@B).Def $(ObjList) -OUT:$@ $(LogCmd)
  549.  
  550. .Def{$(ObjDir)\}.exp:
  551. !if "$(LOG)"=="YES"
  552.     @echo $(IMPLIB) -nologo -machine:$(CPU) -def:$(@B).Def -OUT:$(@R).Lib $(ObjDir)\*.Obj $(STATICLIBS) $(LogCmd)
  553. !endif
  554.     $(IMPLIB) -nologo -machine:$(CPU) -def:$(@B).Def -OUT:$(@R).Lib $(ObjDir)\*.Obj $(STATICLIBS) $(LogCmd)
  555.  
  556. # Static Libraries
  557. {$(ObjDir)\}.obj{$(ObjDir)\}.lib:
  558. !if "$(LOG)"=="YES"
  559.     @echo $(LIBU) $(LIBFLAGS)  $** $(LogCmd)
  560. !endif
  561.     $(LIBU) $(LIBFLAGS) $** $(LogCmd)
  562.  
  563. # DLLs
  564. {$(ObjDir)\}.obj{$(ObjDir)\}.dll:
  565.     @echo $** > $(ObjDir)\objfiles.lst
  566.     @echo $(LinkLibs) > $(ObjDir)\libfiles.lst
  567. !if "$(LOG)"=="YES"
  568.     @echo   $(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  569. !endif
  570.     $(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  571.  
  572. # OCs
  573. {$(ObjDir)\}.obj{$(ObjDir)\}.Ocx:
  574.     @echo $** > $(ObjDir)\objfiles.lst
  575.     @echo $(LinkLibs) > $(ObjDir)\libfiles.lst
  576. !if "$(LOG)"=="YES"
  577.     @echo   $(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  578. !endif
  579.     $(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  580.  
  581. # CPLs
  582. {$(ObjDir)\}.obj{$(ObjDir)\}.Cpl:
  583.     @echo $** > $(ObjDir)\objfiles.lst
  584.     @echo $(LinkLibs) > $(ObjDir)\libfiles.lst
  585. !if "$(LOG)"=="YES"
  586.     @echo   $(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  587. !endif
  588.     $(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  589.  
  590. # BINs
  591. {$(ObjDir)\}.obj{$(ObjDir)\}.bin:
  592.     @echo $(LinkLibs) > $(ObjDir)\libfiles.lst
  593. !if "$(LOG)"=="YES"
  594.     @echo $(LINK) $(LFLAGS) $(linkflags) $** @$(ObjDir)\libfiles.lst $(LogCmd)
  595. !endif
  596.     $(LINK) $(LFLAGS) $(linkflags) $** @$(ObjDir)\libfiles.lst $(LogCmd)
  597.  
  598. # EXEs
  599. {$(ObjDir)\}.obj{$(ObjDir)\}.exe:
  600.     @echo $**  > $(ObjDir)\objfiles.lst
  601.     @echo $(LinkLibs) > $(ObjDir)\libfiles.lst
  602. !if "$(LOG)"=="YES"
  603.     @echo $(LINK) $(LFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  604. !endif
  605.     $(LINK) $(LFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
  606.  
  607. # Helpfiles
  608. .hpj{$(ObjDir)\}.hlp:
  609.     $(MkDest)
  610. !if "$(LOG)"=="YES"
  611.     @echo  $(HC) $(HFLAGS) $(@B).Hpj
  612. !endif
  613.     $(HC) $(HFLAGS) $(@B).Hpj
  614. !if "$(LOG)"=="YES"
  615.     @echo   xcopy $(@F) $(ObjDir)
  616. !endif
  617.     -xcopy $(@F) $(ObjDir) $(LogCmd)
  618.  
  619. # ISAPI DLLs to Web Roots
  620. {$(ObjDir)}.Dll{$(WWWSCRIPTS)\SDK}.Dll:
  621.  $(MkWWWDest)
  622.  !copy $? $(WWWSCRIPTS)\SDK
  623.  
  624. # Test EXEs to Web Roots
  625. {$(ObjDir)}.Exe{$(WWWSCRIPTS)\SDK}.Exe:
  626.  $(MkWWWDest)
  627.  !copy $? $(WWWSCRIPTS)\SDK
  628.  
  629. # HTML files to webroots
  630. .Htm{$(WWWROOT)\SDK\$(Proj)}.Htm:
  631.  $(MkWWWDest)
  632.  !copy $? $(WWWROOT)\SDK\$(Proj)
  633.  
  634. # GIF files to webroots
  635. .Gif{$(WWWROOT)\SDK\$(Proj)}.Gif:
  636.  $(MkWWWDest)
  637.  !copy $? $(WWWROOT)\SDK\$(Proj)
  638.  
  639. # JPEG files to webroots
  640. .Jpg{$(WWWROOT)\SDK\$(Proj)}.Jpg:
  641.  $(MkWWWDest)
  642.  !copy $? $(WWWROOT)\SDK\$(Proj)
  643.  
  644. # ISAPI sources to web roots
  645. .Cpp{$(WWWROOT)\SDK\$(Proj)}.Cpp:
  646.  $(MkWWWDest)
  647.  !copy $? $(WWWROOT)\SDK\$(Proj)
  648.  
  649. # ISAPI sources to web roots
  650. .C{$(WWWROOT)\SDK\$(Proj)}.C:
  651.  $(MkWWWDest)
  652.  !copy $? $(WWWROOT)\SDK\$(Proj)
  653.  
  654. # ISAPI sources to web roots
  655. .h{$(WWWROOT)\SDK\$(Proj)}.h:
  656.  $(MkWWWDest)
  657.  !copy $? $(WWWROOT)\SDK\$(Proj)
  658.  
  659. # ISAPI sources to web roots
  660. .Def{$(WWWROOT)\SDK\$(Proj)}.Def:
  661.  $(MkWWWDest)
  662.  !copy $? $(WWWROOT)\SDK\$(Proj)
  663.  
  664. # ISAPI sources to web roots
  665. .Mak{$(WWWROOT)\SDK\$(Proj)}.Mak:
  666.  $(MkWWWDest)
  667.  !copy $? $(WWWROOT)\SDK\$(Proj)
  668.  
  669. #*********************************************
  670. #
  671. # Make Targets
  672. #
  673. #*********************************************
  674.  
  675. #---------------------------------------------
  676. # List Output Files
  677. #---------------------------------------------
  678. ListDir:
  679.     dir $(ObjDir)
  680.  
  681. #---------------------------------------------
  682. # Display Output Listing File
  683. #---------------------------------------------
  684. !ifndef ERRVIEW
  685. ERRVIEW=start notepad.exe
  686. !endif
  687.  
  688. ListOut:
  689.     $(ERRVIEW) $(ObjDir)\$(Proj).out
  690.  
  691. #---------------------------------------------
  692. # Delete Output Listing File
  693. #---------------------------------------------
  694. DelOut:
  695.     del $(ObjDir)\$(Proj).out
  696.  
  697. #---------------------------------------------
  698. # Clean Output Directories
  699. #---------------------------------------------
  700. clean:
  701.  $(MkDest)
  702. !if "$(OS)" == "Windows_NT"
  703.  del /q $(ObjDir)\*.obj \
  704.         $(ObjDir)\*.out \
  705.         $(ObjDir)\*.h   \
  706.         $(ObjDir)\*.dbg \
  707.         $(ObjDir)\*.ocx \
  708.         $(ObjDir)\*.log \
  709.         $(ObjDir)\*.lib \
  710.         $(ObjDir)\*.exe \
  711.         $(ObjDir)\*.dll \
  712.         $(ObjDir)\*.map \
  713.         $(ObjDir)\*.res \
  714.         $(ObjDir)\*.rc  \
  715.         $(ObjDir)\*.bin \
  716.         $(ObjDir)\*.lst \
  717.         $(ObjDir)\*.blt \
  718.         $(ObjDir)\*.hlp \
  719.         $(ObjDir)\*.srl \
  720.         $(ObjDir)\*.exp >NUL 2>NUL
  721. !else  # Win95 doesn't support "2>" on command line, multiple files on a Del command, or /q
  722.  erase  $(ObjDir)\*.obj >NUL
  723.  erase  $(ObjDir)\*.out >NUL
  724.  erase  $(ObjDir)\*.h   >NUL
  725.  erase  $(ObjDir)\*.dbg >NUL
  726.  erase  $(ObjDir)\*.ocx >NUL
  727.  erase  $(ObjDir)\*.log >NUL
  728.  erase  $(ObjDir)\*.lib >NUL
  729.  erase  $(ObjDir)\*.exe >NUL
  730.  erase  $(ObjDir)\*.dll >NUL
  731.  erase  $(ObjDir)\*.map >NUL
  732.  erase  $(ObjDir)\*.res >NUL
  733.  erase  $(ObjDir)\*.rc  >NUL
  734.  erase  $(ObjDir)\*.bin >NUL
  735.  erase  $(ObjDir)\*.lst >NUL
  736.  erase  $(ObjDir)\*.blt >NUL
  737.  erase  $(ObjDir)\*.hlp >NUL
  738.  erase  $(ObjDir)\*.srl >NUL
  739.  erase  $(ObjDir)\*.exp >NUL
  740. !endif  # OS == Windows_NT
  741. !endif      # _INETSDK_MAK_
  742.