makefile.bc
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:18k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #
  2. # Makefile for Borland C++ 5.5 (or C++ Builder 5), adapted from the makefile
  3. #   for Visual C++ that came with tcl 8.3.3
  4. #
  5. # See the file "license.terms" for information on usage and redistribution
  6. # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  7. #
  8. # Copyright (c) 1995-1996 Sun Microsystems, Inc.
  9. # Copyright (c) 1998-1999 by Scriptics Corporation.
  10. #
  11. # Have a look at the complete description on how to build and test Tcl with
  12. # the current Borland compilers at www.ratiosoft.com/tcl/borland.
  13. #
  14. # Usage:
  15. #   - Adapt the paths below to match your compiler's location
  16. #   - Make sure the compiler's bin directory is on your path
  17. #   - Open a console
  18. #   - To make a debug version enter
  19. #       make -fmakefile.bc -DNODEBUG=0 xxx
  20. #     where 'xxx' is the target you want (e.g. 'all', 'test', ...)
  21. #     Please note: I omitted the 'd' suffix for debug versions because Tcl
  22. #     will always call tclpip83.dll and not tclpip83d.dll, causing an error.
  23. #                                                   ^
  24. #     Besides, the debug version goes into a separate directory, so there
  25. #     should be no problem having DLLs and EXEs with the same name.
  26. #     If you prefer your debug version having the 'd' suffix just uncomment
  27. #     the line
  28. #         #DBGX        = d
  29. #
  30. #   - To make a 'normal' version enter
  31. #       make -fmakefile.bc xxx
  32. #     where 'xxx' is the target you want (e.g. 'all', 'test', ...)
  33. #
  34. # DISCLAIMER:
  35. # This makefile has an experimental status - that is those targets which
  36. # have been modified do in fact compile and link with Borland's C++
  37. # Builder 5 and with the free Borland compiler (Borland C++ 5.5).
  38. # However the author assumes no responsiblity for any effect which the use of
  39. # this makefile or of the resulting programs might have on your system.
  40. #
  41. # Not yet modified:
  42. #   - The 'plug-in-DLL' and the associated shell.
  43. #   - The programs to create the windows help files.
  44. #
  45. # Suggestions and / or improvements are always welcome.
  46. #
  47. # May 2001, H. Giese (hgiese@ratiosoft.com)
  48. #
  49. # Does not depend on the presence of any environment variables in
  50. # order to compile tcl; all needed information is derived from
  51. # location of the compiler directories.
  52. #
  53. # Project directories
  54. #
  55. # ROOT    = top of source tree
  56. #
  57. # TOOLS32 = location of Borland development tools.
  58. #
  59. # INSTALLDIR = where the install-targets should copy the binaries and
  60. #     support files
  61. #
  62. ROOT = ..
  63. INSTALLDIR = c:program filestcl
  64. # If you have C++ Builder 5 or the free Borland C++ 5.5 compiler
  65. # adapt the following paths as appropriate for your system
  66. TOOLS32 = c:devbcc55
  67. TOOLS32_rc = c:devbcc55
  68. #TOOLS32 = c:bc55
  69. #TOOLS32_rc = c:bc55
  70. cc32 = "$(TOOLS32)binbcc32.exe"
  71. link32 = "$(TOOLS32)binilink32.exe"
  72. lib32 = "$(TOOLS32)bintlib.exe"
  73. rc32 = "$(TOOLS32_rc)binbrcc32.exe"
  74. include32 = -I"$(TOOLS32)include"
  75. libpath32 = -L"$(TOOLS32)lib"
  76. # Uncomment the following line to compile with thread support
  77. #THREADDEFINES = -DTCL_THREADS=1
  78. # Allow definition of NDEBUG via command line
  79. # Set NODEBUG to 0 to compile with symbols
  80. !if !defined(NODEBUG)
  81. NODEBUG = 1
  82. !endif
  83. # The following defines can be used to control the amount of debugging
  84. # code that is added to the compilation.
  85. #
  86. # -DTCL_MEM_DEBUG   Enables the debugging memory allocator.
  87. # -DTCL_COMPILE_DEBUG Enables byte compilation logging.
  88. # -DTCL_COMPILE_STATS Enables byte compilation statistics gathering.
  89. # -DUSE_TCLALLOC=0  Disables the Tcl memory allocator in favor
  90. #       of the native malloc implementation.  This is
  91. #       needed when using Purify.
  92. #
  93. #DEBUGDEFINES = -DTCL_MEM_DEBUG -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS
  94. #DEBUGDEFINES = -DUSE_TCLALLOC=0
  95. ######################################################################
  96. # Do not modify below this line
  97. ######################################################################
  98. NAMEPREFIX = tcl
  99. STUBPREFIX = $(NAMEPREFIX)stub
  100. DOTVERSION = 8.4
  101. VERSION = 84
  102. DDEVERSION = 12
  103. DDEDOTVERSION = 1.2
  104. REGVERSION = 11
  105. REGDOTVERSION = 1.1
  106. BINROOT = ..
  107. !IF "$(NODEBUG)" == "1"
  108. TMPDIRNAME = Release
  109. DBGX =
  110. !ELSE
  111. TMPDIRNAME = Debug
  112. #DBGX = d
  113. DBGX =
  114. !ENDIF
  115. TMPDIR = $(BINROOT)$(TMPDIRNAME)
  116. OUTDIRNAME = $(TMPDIRNAME)
  117. OUTDIR = $(TMPDIR)
  118. TCLLIB = $(OUTDIR)$(NAMEPREFIX)$(VERSION)$(DBGX).lib
  119. TCLDLLNAME = $(NAMEPREFIX)$(VERSION)$(DBGX).dll
  120. TCLDLL = $(OUTDIR)$(TCLDLLNAME)
  121. TCLSTUBLIBNAME = $(STUBPREFIX)$(VERSION)$(DBGX).lib
  122. TCLSTUBLIB = $(OUTDIR)$(TCLSTUBLIBNAME)
  123. TCLPLUGINLIB = $(OUTDIR)$(NAMEPREFIX)$(VERSION)p$(DBGX).lib
  124. TCLPLUGINDLLNAME = $(NAMEPREFIX)$(VERSION)p$(DBGX).dll
  125. TCLPLUGINDLL = $(OUTDIR)$(TCLPLUGINDLLNAME)
  126. TCLSH = $(OUTDIR)$(NAMEPREFIX)sh$(VERSION)$(DBGX).exe
  127. TCLSHP = $(OUTDIR)$(NAMEPREFIX)shp$(VERSION)$(DBGX).exe
  128. TCLPIPEDLLNAME = $(NAMEPREFIX)pip$(VERSION)$(DBGX).dll
  129. TCLPIPEDLL = $(OUTDIR)$(TCLPIPEDLLNAME)
  130. TCLREGDLLNAME = $(NAMEPREFIX)reg$(REGVERSION)$(DBGX).dll
  131. TCLREGDLL = $(OUTDIR)$(TCLREGDLLNAME)
  132. TCLDDEDLLNAME = $(NAMEPREFIX)dde$(DDEVERSION)$(DBGX).dll
  133. TCLDDEDLL = $(OUTDIR)$(TCLDDEDLLNAME)
  134. TCLTEST = $(OUTDIR)$(NAMEPREFIX)test.exe
  135. CAT32 = $(TMPDIR)cat32.exe
  136. RMDIR = .rmd.bat
  137. MKDIR = .mkd.bat
  138. RM = del
  139. LIB_INSTALL_DIR = $(INSTALLDIR)lib
  140. BIN_INSTALL_DIR = $(INSTALLDIR)bin
  141. SCRIPT_INSTALL_DIR = $(INSTALLDIR)libtcl$(DOTVERSION)
  142. INCLUDE_INSTALL_DIR = $(INSTALLDIR)include
  143. TCLSHOBJS = 
  144. $(TMPDIR)tclAppInit.obj
  145. TCLTESTOBJS = 
  146. $(TMPDIR)tclTest.obj 
  147. $(TMPDIR)tclTestObj.obj 
  148. $(TMPDIR)tclTestProcBodyObj.obj 
  149. $(TMPDIR)tclThreadTest.obj 
  150. $(TMPDIR)tclWinTest.obj 
  151. $(TMPDIR)testMain.obj
  152. TCLOBJS = 
  153. $(TMPDIR)regcomp.obj 
  154. $(TMPDIR)regexec.obj 
  155. $(TMPDIR)regfree.obj 
  156. $(TMPDIR)regerror.obj 
  157. $(TMPDIR)strftime.obj 
  158. $(TMPDIR)strtoll.obj 
  159. $(TMPDIR)strtoull.obj 
  160. $(TMPDIR)tclAlloc.obj 
  161. $(TMPDIR)tclAsync.obj 
  162. $(TMPDIR)tclBasic.obj 
  163. $(TMPDIR)tclBinary.obj 
  164. $(TMPDIR)tclCkalloc.obj 
  165. $(TMPDIR)tclClock.obj 
  166. $(TMPDIR)tclCmdAH.obj 
  167. $(TMPDIR)tclCmdIL.obj 
  168. $(TMPDIR)tclCmdMZ.obj 
  169. $(TMPDIR)tclCompCmds.obj 
  170. $(TMPDIR)tclCompExpr.obj 
  171. $(TMPDIR)tclCompile.obj 
  172. $(TMPDIR)tclDate.obj 
  173. $(TMPDIR)tclEncoding.obj 
  174. $(TMPDIR)tclEnv.obj 
  175. $(TMPDIR)tclEvent.obj 
  176. $(TMPDIR)tclExecute.obj 
  177. $(TMPDIR)tclFCmd.obj 
  178. $(TMPDIR)tclFileName.obj 
  179. $(TMPDIR)tclGet.obj 
  180. $(TMPDIR)tclHash.obj 
  181. $(TMPDIR)tclHistory.obj 
  182. $(TMPDIR)tclIndexObj.obj 
  183. $(TMPDIR)tclInterp.obj 
  184. $(TMPDIR)tclIO.obj 
  185. $(TMPDIR)tclIOCmd.obj 
  186. $(TMPDIR)tclIOGT.obj 
  187. $(TMPDIR)tclIOSock.obj 
  188. $(TMPDIR)tclIOUtil.obj 
  189. $(TMPDIR)tclLink.obj 
  190. $(TMPDIR)tclLiteral.obj 
  191. $(TMPDIR)tclListObj.obj 
  192. $(TMPDIR)tclLoad.obj 
  193. $(TMPDIR)tclMain.obj 
  194. $(TMPDIR)tclNamesp.obj 
  195. $(TMPDIR)tclNotify.obj 
  196. $(TMPDIR)tclObj.obj 
  197. $(TMPDIR)tclPanic.obj 
  198. $(TMPDIR)tclParse.obj 
  199. $(TMPDIR)tclParseExpr.obj 
  200. $(TMPDIR)tclPipe.obj 
  201. $(TMPDIR)tclPkg.obj 
  202. $(TMPDIR)tclPosixStr.obj 
  203. $(TMPDIR)tclPreserve.obj 
  204. $(TMPDIR)tclProc.obj 
  205. $(TMPDIR)tclRegexp.obj 
  206. $(TMPDIR)tclResolve.obj 
  207. $(TMPDIR)tclResult.obj 
  208. $(TMPDIR)tclScan.obj 
  209. $(TMPDIR)tclStringObj.obj 
  210. $(TMPDIR)tclStubInit.obj 
  211. $(TMPDIR)tclStubLib.obj 
  212. $(TMPDIR)tclThread.obj 
  213. $(TMPDIR)tclThreadJoin.obj 
  214. $(TMPDIR)tclTimer.obj 
  215. $(TMPDIR)tclUtf.obj 
  216. $(TMPDIR)tclUtil.obj 
  217. $(TMPDIR)tclVar.obj 
  218. $(TMPDIR)tclWin32Dll.obj 
  219. $(TMPDIR)tclWinChan.obj 
  220. $(TMPDIR)tclWinConsole.obj 
  221. $(TMPDIR)tclWinSerial.obj 
  222. $(TMPDIR)tclWinError.obj 
  223. $(TMPDIR)tclWinFCmd.obj 
  224. $(TMPDIR)tclWinFile.obj 
  225. $(TMPDIR)tclWinInit.obj 
  226. $(TMPDIR)tclWinLoad.obj 
  227. $(TMPDIR)tclWinMtherr.obj 
  228. $(TMPDIR)tclWinNotify.obj 
  229. $(TMPDIR)tclWinPipe.obj 
  230. $(TMPDIR)tclWinSock.obj 
  231. $(TMPDIR)tclWinThrd.obj 
  232. $(TMPDIR)tclWinTime.obj
  233. TCLSTUBOBJS = $(TMPDIR)tclStubLib.obj
  234. WINDIR = $(ROOT)win
  235. GENERICDIR = $(ROOT)generic
  236. TCL_INCLUDES = -I"$(WINDIR)" -I"$(GENERICDIR)"
  237. TCL_DEFINES = $(DEBUGDEFINES) $(THREADDEFINES)
  238. ######################################################################
  239. # Compiler flags
  240. ######################################################################
  241. !IF "$(NODEBUG)" == "1"
  242. # these macros cause maximum optimization and no symbols
  243. cdebug = -v- -vi- -O2 -D_DEBUG
  244. !ELSE
  245. # these macros enable debugging
  246. cdebug = -k -Od -r- -v -vi- -y
  247. !ENDIF
  248. SYSDEFINES = _MT;NO_STRICT;_NO_VCL
  249. # declarations common to all compiler options
  250. cbase = -c -q -3 -a4 -g0 -tWM -Ve -Vx -X-
  251. WARNINGS = -w-rch -w-pch -w-par -w-dup -w-pro -w-dpu
  252. ccons = -tWC
  253. INCLUDEPATH = $(include32) $(TCL_INCLUDES)
  254. CFLAGS = $(cdebug) $(cbase) $(INCLUDEPATH) $(WARNINGS) -D$(SYSDEFINES)
  255. TCL_CFLAGS = $(CFLAGS) $(TCL_DEFINES)
  256. CONS_CFLAGS = $(CFLAGS) $(TCL_DEFINES) $(ccons)
  257. ######################################################################
  258. # Linker flags
  259. ######################################################################
  260. !IF "$(NODEBUG)" == "1"
  261. ldebug =
  262. !ELSE
  263. ldebug = -v
  264. !ENDIF
  265. # declarations common to all linker options
  266. LNFLAGS = -D"" -Gn -I$(TMPDIR) -x $(ldebug) $(libpath32)
  267. # -Gi: create lib file (is -Gl in doc)
  268. # -aa: Windows app, -ap: Windows console app
  269. LNFLAGS_DLL = -ap -Gi -Tpd
  270. LNFLAGS_CONS = -ap -Tpe
  271. LNLIBS = import32 cw32mt
  272. ######################################################################
  273. # Project specific targets
  274. ######################################################################
  275. release: setup $(TCLSH) dlls
  276. dlls: setup $(TCLPIPEDLL) $(TCLREGDLL) $(TCLDDEDLL)
  277. all: setup $(TCLSH) dlls $(CAT32)
  278. tcltest: setup $(TCLTEST) dlls $(CAT32)
  279. plugin: setup $(TCLPLUGINDLL) $(TCLSHP)
  280. install: install-binaries install-libraries
  281. test: setup $(TCLTEST) dlls $(CAT32)
  282. set TCL_LIBRARY=$(ROOT)/library
  283. $(TCLTEST) $(ROOT)/tests/all.tcl
  284. setup:
  285. @if not exist $(OUT_DIR)nul mkdir $(OUT_DIR) &
  286. echo *** Created directory '$(OUT_DIR)'
  287. @if not exist $(TMP_DIR)nul mkdir $(TMP_DIR) &
  288. echo *** Created directory '$(TMP_DIR)'
  289. $(TCLLIB): $(TCLDLL)
  290. $(TCLDLL): $(TCLOBJS) $(TMPDIR)$(NAMEPREFIX).res
  291. $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_DLL) $(TOOLS32)libc0d32 @&&!
  292. $(TCLOBJS), $@, -x, $(LNLIBS),, $(TMPDIR)$(NAMEPREFIX).res
  293. !
  294. $(TCLSTUBLIB): $(TCLSTUBOBJS)
  295. $(lib32) /u $@ $(TCLSTUBOBJS)
  296. $(TCLPLUGINLIB): $(TCLPLUGINDLL)
  297. $(TCLPLUGINDLL): $(TCLOBJS) $(TMPDIR)tcl.res
  298. $(link32) $(ldebug) $(dlllflags) 
  299. -out:$@ $(TMPDIR)tcl.res $(guilibsdll) @&&!
  300. $(TCLOBJS)
  301. !
  302. $(TCLSH): $(TCLSHOBJS) $(TCLLIB) $(TMPDIR)$(NAMEPREFIX)sh.res
  303. $(link32) $(ldebug) -S:2400000 $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)libc0x32 @&&!
  304. $(TCLSHOBJS), $@, -x, $(LNLIBS) $(TCLLIB),, $(TMPDIR)$(NAMEPREFIX)sh.res
  305. !
  306. $(TCLSHP): $(TCLSHOBJS) $(TCLPLUGINLIB) $(TMPDIR)tclsh.res
  307. $(link32) $(ldebug) $(conlflags) $(TMPDIR)tclsh.res -stack:2300000 
  308. -out:$@ $(conlibsdll) $(TCLPLUGINLIB) $(TCLSHOBJS)
  309. $(TCLTEST): $(TCLTESTOBJS) $(TCLLIB) $(TMPDIR)$(NAMEPREFIX)sh.res
  310. $(link32) $(ldebug) -S:2400000 $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)libc0x32 @&&!
  311. $(TCLTESTOBJS), $@, -x, $(LNLIBS) $(TCLLIB),, $(TMPDIR)$(NAMEPREFIX)sh.res
  312. !
  313. $(TCLPIPEDLL): $(WINDIR)stub16.c
  314. $(cc32) $(CFLAGS) -o$(TMPDIR)stub16.obj $(WINDIR)stub16.c
  315. $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)libc0x32 
  316. $(TMPDIR)stub16.obj, $@, -x, $(LNLIBS),, $(TMPDIR)$(NAMEPREFIX).res
  317. $(TCLDDEDLL): $(TMPDIR)tclWinDde.obj $(TCLSTUBLIB)
  318. $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_DLL) $(TOOLS32)libc0d32 
  319. $(TMPDIR)tclWinDde.obj, $@, -x, $(LNLIBS) $(TCLSTUBLIB),, 
  320. $(TMPDIR)$(NAMEPREFIX).res
  321. $(TCLREGDLL): $(TMPDIR)tclWinReg.obj $(TCLSTUBLIB)
  322. $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_DLL) $(TOOLS32)libc0d32 
  323. $(TMPDIR)tclWinReg.obj, $@, -x, $(LNLIBS) $(TCLSTUBLIB),, 
  324. $(TMPDIR)$(NAMEPREFIX).res
  325. $(CAT32): $(WINDIR)cat.c
  326. $(cc32) $(CONS_CFLAGS) -o$(TMPDIR)cat.obj $?
  327. $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)libc0x32 
  328. $(TMPDIR)cat.obj, $@, -x, $(LNLIBS),,
  329. install-binaries: $(TCLSH)
  330. $(MKDIR) "$(BIN_INSTALL_DIR)"
  331. $(MKDIR) "$(LIB_INSTALL_DIR)"
  332. @echo installing $(TCLDLLNAME)
  333. @copy "$(TCLDLL)" "$(BIN_INSTALL_DIR)"
  334. @copy "$(TCLLIB)" "$(LIB_INSTALL_DIR)"
  335. @echo installing "$(TCLSH)"
  336. @copy "$(TCLSH)" "$(BIN_INSTALL_DIR)"
  337. @echo installing $(TCLPIPEDLLNAME)
  338. @copy "$(TCLPIPEDLL)" "$(BIN_INSTALL_DIR)"
  339. @echo installing $(TCLSTUBLIBNAME)
  340. @copy "$(TCLSTUBLIB)" "$(LIB_INSTALL_DIR)"
  341. install-libraries:
  342. -@$(MKDIR) "$(LIB_INSTALL_DIR)"
  343. -@$(MKDIR) "$(INCLUDE_INSTALL_DIR)"
  344. -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)"
  345. @echo installing http1.0
  346. -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)http1.0"
  347. -@copy "$(ROOT)libraryhttp1.0http.tcl"     "$(SCRIPT_INSTALL_DIR)http1.0"
  348. -@copy "$(ROOT)libraryhttp1.0pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)http1.0"
  349. @echo installing http2.5
  350. -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)http2.5"
  351. -@copy "$(ROOT)libraryhttphttp.tcl"     "$(SCRIPT_INSTALL_DIR)http2.5"
  352. -@copy "$(ROOT)libraryhttppkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)http2.5"
  353. @echo installing opt0.4
  354. -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)opt0.4"
  355. -@copy "$(ROOT)libraryoptoptparse.tcl" "$(SCRIPT_INSTALL_DIR)opt0.4"
  356. -@copy "$(ROOT)libraryoptpkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)opt0.4"
  357. @echo installing msgcat1.3
  358. -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)msgcat1.3"
  359. -@copy "$(ROOT)librarymsgcatmsgcat.tcl"   "$(SCRIPT_INSTALL_DIR)msgcat1.3"
  360. -@copy "$(ROOT)librarymsgcatpkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)msgcat1.3"
  361. @echo installing tcltest2.2
  362. -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)tcltest2.2"
  363. -@copy "$(ROOT)librarytcltesttcltest.tcl"   "$(SCRIPT_INSTALL_DIR)tcltest2.2"
  364. -@copy "$(ROOT)librarytcltestpkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)tcltest2.2"
  365. @echo installing $(TCLDDEDLLNAME)
  366. -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)dde1.1"
  367. -@copy "$(TCLDDEDLL)" "$(SCRIPT_INSTALL_DIR)dde1.1"
  368. -@copy "$(ROOT)libraryddepkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)dde1.1"
  369. @echo installing $(TCLREGDLLNAME)
  370. -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)reg1.1"
  371. -@copy "$(TCLREGDLL)" "$(SCRIPT_INSTALL_DIR)reg1.1"
  372. -@copy "$(ROOT)libraryregpkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)reg1.1"
  373. @echo installing encoding files
  374. -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)encoding"
  375. -@copy "$(ROOT)libraryencoding*.enc" "$(SCRIPT_INSTALL_DIR)encoding"
  376. @echo installing library files
  377. -@copy "$(GENERICDIR)tcl.h"         "$(INCLUDE_INSTALL_DIR)"
  378. -@copy "$(GENERICDIR)tclDecls.h"    "$(INCLUDE_INSTALL_DIR)"
  379. -@copy "$(GENERICDIR)tclPlatDecls.h" "$(INCLUDE_INSTALL_DIR)"
  380. -@copy "$(ROOT)libraryhistory.tcl" "$(SCRIPT_INSTALL_DIR)"
  381. -@copy "$(ROOT)libraryinit.tcl"    "$(SCRIPT_INSTALL_DIR)"
  382. -@copy "$(ROOT)libraryldAout.tcl"  "$(SCRIPT_INSTALL_DIR)"
  383. -@copy "$(ROOT)libraryparray.tcl"  "$(SCRIPT_INSTALL_DIR)"
  384. -@copy "$(ROOT)librarysafe.tcl"    "$(SCRIPT_INSTALL_DIR)"
  385. -@copy "$(ROOT)librarytclIndex"    "$(SCRIPT_INSTALL_DIR)"
  386. -@copy "$(ROOT)librarypackage.tcl" "$(SCRIPT_INSTALL_DIR)"
  387. -@copy "$(ROOT)libraryword.tcl"    "$(SCRIPT_INSTALL_DIR)"
  388. -@copy "$(ROOT)libraryauto.tcl"    "$(SCRIPT_INSTALL_DIR)"
  389. #
  390. # Regenerate the stubs files.
  391. #
  392. genstubs:
  393. tclsh$(VERSION) $(ROOT)toolsgenStubs.tcl $(GENERICDIR) 
  394. $(GENERICDIR)tcl.decls $(GENERICDIR)tclInt.decls
  395. #
  396. # Regenerate the windows help files.
  397. #
  398. TCLTOOLS = $(ROOT)/tools
  399. MAN2TCL = $(TCLTOOLS)/man2tcl
  400. TCLRTF = $(TCLTOOLS)/tcl.rtf
  401. TCLHPJ = $(TCLTOOLS)/tcl.hpj
  402. MAN2HELP = $(TCLTOOLS)/man2help.tcl
  403. HCRTF = $(TOOLS32)/bin/hcrtf.exe
  404. winhelp: $(TCLRTF)
  405. cd $(TCLTOOLS)
  406. start /wait $(HCRTF) -xn $(TCLHPJ)
  407. $(MAN2TCL).exe: $(MAN2TCL).obj
  408. cd $(TCLTOOLS)
  409. $(cc32) /nologo /G4 /ML /O2 $(MAN2TCL).c
  410. $(TCLRTF): $(MAN2TCL).exe $(TCLSH)
  411. cd $(TCLTOOLS)
  412. ..win$(TCLSH) $(MAN2HELP) $(NAMEPREFIX) $(VERSION) $(ROOT)/doc ../../tk$(DOTVERSION)/doc
  413. #
  414. # Special case object file targets
  415. #
  416. $(TMPDIR)tclWinInit.obj: $(WINDIR)tclWinInit.c
  417. $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -o$(TMPDIR)$@ $?
  418. $(TMPDIR)testMain.obj: $(WINDIR)tclAppInit.c
  419. $(cc32) $(TCL_CFLAGS) -DTCL_TEST -o$(TMPDIR)testMain.obj $?
  420. $(TMPDIR)tclTest.obj: $(GENERICDIR)tclTest.c
  421. $(cc32) $(TCL_CFLAGS) -o$(TMPDIR)$@ $?
  422. $(TMPDIR)tclTestObj.obj: $(GENERICDIR)tclTestObj.c
  423. $(cc32) $(TCL_CFLAGS) -o$(TMPDIR)$@ $?
  424. $(TMPDIR)tclWinTest.obj: $(WINDIR)tclWinTest.c
  425. $(cc32) $(TCL_CFLAGS) -o$(TMPDIR)$@ $?
  426. $(TMPDIR)tclAppInit.obj : $(WINDIR)tclAppInit.c
  427. $(cc32) $(TCL_CFLAGS) -o$(TMPDIR)$@ $?
  428. # The following objects should be built using the stub interfaces
  429. # tclWinReg: Produces errors in ANSI mode
  430. $(TMPDIR)tclWinReg.obj : $(WINDIR)tclWinReg.c
  431. $(cc32) $(TCL_CFLAGS) -DUSE_TCL_STUBS -o$(TMPDIR)$@ $?
  432. # tclWinDde: Produces errors in ANSI mode
  433. $(TMPDIR)tclWinDde.obj : $(WINDIR)tclWinDde.c
  434. $(cc32) $(TCL_CFLAGS) -DUSE_TCL_STUBS -o$(TMPDIR)$@ $?
  435. # The following objects are part of the stub library and should not
  436. # be built as DLL objects but none of the symbols should be exported
  437. $(TMPDIR)tclStubLib.obj : $(GENERICDIR)tclStubLib.c
  438. $(cc32) $(TCL_CFLAGS) -DSTATIC_BUILD -o$(TMPDIR)$@ $?
  439. # Dedependency rules
  440. $(GENERICDIR)regcomp.c: 
  441. $(GENERICDIR)regguts.h 
  442. $(GENERICDIR)regc_lex.c 
  443. $(GENERICDIR)regc_color.c 
  444. $(GENERICDIR)regc_nfa.c 
  445. $(GENERICDIR)regc_cvec.c 
  446. $(GENERICDIR)regc_locale.c
  447. $(GENERICDIR)regcustom.h: 
  448. $(GENERICDIR)tclInt.h 
  449. $(GENERICDIR)tclPort.h 
  450. $(GENERICDIR)regex.h
  451. $(GENERICDIR)regexec.c: 
  452. $(GENERICDIR)rege_dfa.c 
  453. $(GENERICDIR)regguts.h
  454. $(GENERICDIR)regerror.c: $(GENERICDIR)regguts.h
  455. $(GENERICDIR)regfree.c: $(GENERICDIR)regguts.h
  456. $(GENERICDIR)regfronts.c: $(GENERICDIR)regguts.h
  457. $(GENERICDIR)regguts.h: $(GENERICDIR)regcustom.h
  458. #
  459. # Implicit rules
  460. #
  461. {$(WINDIR)}.c{$(TMPDIR)}.obj:
  462. $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -o$@ $<
  463. {$(GENERICDIR)}.c{$(TMPDIR)}.obj:
  464. $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -o$@ $<
  465. {$(ROOT)compat}.c{$(TMPDIR)}.obj:
  466. $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -o$@ $<
  467. {$(WINDIR)}.rc{$(TMPDIR)}.res:
  468. $(rc32) $(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -fo$@ $<
  469. clean:
  470. -@$(RM) $(OUTDIR)*.exp
  471. -@$(RM) $(OUTDIR)*.lib
  472. -@$(RM) $(OUTDIR)*.dll
  473. -@$(RM) $(OUTDIR)*.exe
  474. -@$(RM) $(OUTDIR)*.pdb
  475. -@$(RM) $(TMPDIR)*.pch
  476. -@$(RM) $(TMPDIR)*.obj
  477. -@$(RM) $(TMPDIR)*.res
  478. -@$(RM) $(TMPDIR)*.exe
  479. -@$(RMDIR) $(OUTDIR)
  480. -@$(RMDIR) $(TMPDIR)