Pratt 1.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. data/.exrc +61 -0
  2. data/.gitignore +4 -0
  3. data/History.txt +6 -0
  4. data/Manifest.txt +46 -0
  5. data/Pratt.gemspec +351 -0
  6. data/README.txt +66 -0
  7. data/Rakefile +85 -0
  8. data/TODO +54 -0
  9. data/VERSION +1 -0
  10. data/bin/pratt.rb +13 -0
  11. data/config.rb +34 -0
  12. data/lib/pratt.rb +527 -0
  13. data/lib/pratt/array.rb +11 -0
  14. data/lib/pratt/string.rb +18 -0
  15. data/models/app.rb +40 -0
  16. data/models/customer.rb +24 -0
  17. data/models/payment.rb +22 -0
  18. data/models/pratt.rb +19 -0
  19. data/models/project.rb +82 -0
  20. data/models/whence.rb +70 -0
  21. data/pkgs/tile-0.8.2.tar.gz +0 -0
  22. data/pkgs/tile-0.8.2/ANNOUNCE.txt +95 -0
  23. data/pkgs/tile-0.8.2/ChangeLog +4651 -0
  24. data/pkgs/tile-0.8.2/Makefile +250 -0
  25. data/pkgs/tile-0.8.2/Makefile.in +250 -0
  26. data/pkgs/tile-0.8.2/README.txt +86 -0
  27. data/pkgs/tile-0.8.2/aclocal.m4 +2 -0
  28. data/pkgs/tile-0.8.2/altTheme.o +0 -0
  29. data/pkgs/tile-0.8.2/blink.o +0 -0
  30. data/pkgs/tile-0.8.2/button.o +0 -0
  31. data/pkgs/tile-0.8.2/cache.o +0 -0
  32. data/pkgs/tile-0.8.2/clamTheme.o +0 -0
  33. data/pkgs/tile-0.8.2/classicTheme.o +0 -0
  34. data/pkgs/tile-0.8.2/config.log +1330 -0
  35. data/pkgs/tile-0.8.2/config.status +795 -0
  36. data/pkgs/tile-0.8.2/configure +15248 -0
  37. data/pkgs/tile-0.8.2/configure.in +89 -0
  38. data/pkgs/tile-0.8.2/demos/autocomplete.tcl +59 -0
  39. data/pkgs/tile-0.8.2/demos/demo.tcl +870 -0
  40. data/pkgs/tile-0.8.2/demos/dirbrowser.tcl +167 -0
  41. data/pkgs/tile-0.8.2/demos/dlgtest.tcl +97 -0
  42. data/pkgs/tile-0.8.2/demos/iconlib.tcl +110 -0
  43. data/pkgs/tile-0.8.2/demos/repeater.tcl +117 -0
  44. data/pkgs/tile-0.8.2/demos/toolbutton.tcl +101 -0
  45. data/pkgs/tile-0.8.2/doc/Geometry.3 +230 -0
  46. data/pkgs/tile-0.8.2/doc/INDEX.MAP +153 -0
  47. data/pkgs/tile-0.8.2/doc/Makefile +36 -0
  48. data/pkgs/tile-0.8.2/doc/TILE.XML +45 -0
  49. data/pkgs/tile-0.8.2/doc/Theme.3 +34 -0
  50. data/pkgs/tile-0.8.2/doc/button.n +75 -0
  51. data/pkgs/tile-0.8.2/doc/checkbutton.n +61 -0
  52. data/pkgs/tile-0.8.2/doc/combobox.n +98 -0
  53. data/pkgs/tile-0.8.2/doc/converting.txt +97 -0
  54. data/pkgs/tile-0.8.2/doc/dialog.n +122 -0
  55. data/pkgs/tile-0.8.2/doc/entry.n +438 -0
  56. data/pkgs/tile-0.8.2/doc/frame.n +43 -0
  57. data/pkgs/tile-0.8.2/doc/html/Geometry.html +304 -0
  58. data/pkgs/tile-0.8.2/doc/html/Theme.html +48 -0
  59. data/pkgs/tile-0.8.2/doc/html/button.html +120 -0
  60. data/pkgs/tile-0.8.2/doc/html/category-index.html +18 -0
  61. data/pkgs/tile-0.8.2/doc/html/checkbutton.html +94 -0
  62. data/pkgs/tile-0.8.2/doc/html/combobox.html +164 -0
  63. data/pkgs/tile-0.8.2/doc/html/converting.txt +97 -0
  64. data/pkgs/tile-0.8.2/doc/html/dialog.html +159 -0
  65. data/pkgs/tile-0.8.2/doc/html/entry.html +613 -0
  66. data/pkgs/tile-0.8.2/doc/html/frame.html +76 -0
  67. data/pkgs/tile-0.8.2/doc/html/image.html +100 -0
  68. data/pkgs/tile-0.8.2/doc/html/index.html +25 -0
  69. data/pkgs/tile-0.8.2/doc/html/keyword-index.html +228 -0
  70. data/pkgs/tile-0.8.2/doc/html/label.html +133 -0
  71. data/pkgs/tile-0.8.2/doc/html/labelframe.html +91 -0
  72. data/pkgs/tile-0.8.2/doc/html/manpage.css +212 -0
  73. data/pkgs/tile-0.8.2/doc/html/menubutton.html +63 -0
  74. data/pkgs/tile-0.8.2/doc/html/notebook.html +280 -0
  75. data/pkgs/tile-0.8.2/doc/html/paned.html +149 -0
  76. data/pkgs/tile-0.8.2/doc/html/progressbar.html +138 -0
  77. data/pkgs/tile-0.8.2/doc/html/radiobutton.html +89 -0
  78. data/pkgs/tile-0.8.2/doc/html/scrollbar.html +221 -0
  79. data/pkgs/tile-0.8.2/doc/html/separator.html +48 -0
  80. data/pkgs/tile-0.8.2/doc/html/sizegrip.html +62 -0
  81. data/pkgs/tile-0.8.2/doc/html/style.html +172 -0
  82. data/pkgs/tile-0.8.2/doc/html/tile-intro.html +164 -0
  83. data/pkgs/tile-0.8.2/doc/html/treeview.html +634 -0
  84. data/pkgs/tile-0.8.2/doc/html/widget.html +342 -0
  85. data/pkgs/tile-0.8.2/doc/image.n +81 -0
  86. data/pkgs/tile-0.8.2/doc/internals.txt +409 -0
  87. data/pkgs/tile-0.8.2/doc/label.n +75 -0
  88. data/pkgs/tile-0.8.2/doc/labelframe.n +64 -0
  89. data/pkgs/tile-0.8.2/doc/man.macros +239 -0
  90. data/pkgs/tile-0.8.2/doc/menubutton.n +41 -0
  91. data/pkgs/tile-0.8.2/doc/notebook.n +188 -0
  92. data/pkgs/tile-0.8.2/doc/paned.n +95 -0
  93. data/pkgs/tile-0.8.2/doc/progressbar.n +79 -0
  94. data/pkgs/tile-0.8.2/doc/radiobutton.n +57 -0
  95. data/pkgs/tile-0.8.2/doc/scrollbar.n +160 -0
  96. data/pkgs/tile-0.8.2/doc/separator.n +30 -0
  97. data/pkgs/tile-0.8.2/doc/sizegrip.n +53 -0
  98. data/pkgs/tile-0.8.2/doc/style.n +119 -0
  99. data/pkgs/tile-0.8.2/doc/tile-intro.n +165 -0
  100. data/pkgs/tile-0.8.2/doc/tmml.options +4 -0
  101. data/pkgs/tile-0.8.2/doc/treeview.n +415 -0
  102. data/pkgs/tile-0.8.2/doc/widget.n +227 -0
  103. data/pkgs/tile-0.8.2/doc/xml/Geometry.tmml +379 -0
  104. data/pkgs/tile-0.8.2/doc/xml/INDEX.MAP +153 -0
  105. data/pkgs/tile-0.8.2/doc/xml/Theme.tmml +63 -0
  106. data/pkgs/tile-0.8.2/doc/xml/button.tmml +134 -0
  107. data/pkgs/tile-0.8.2/doc/xml/checkbutton.tmml +119 -0
  108. data/pkgs/tile-0.8.2/doc/xml/combobox.tmml +184 -0
  109. data/pkgs/tile-0.8.2/doc/xml/dialog.tmml +195 -0
  110. data/pkgs/tile-0.8.2/doc/xml/entry.tmml +630 -0
  111. data/pkgs/tile-0.8.2/doc/xml/frame.tmml +98 -0
  112. data/pkgs/tile-0.8.2/doc/xml/image.tmml +101 -0
  113. data/pkgs/tile-0.8.2/doc/xml/label.tmml +154 -0
  114. data/pkgs/tile-0.8.2/doc/xml/labelframe.tmml +116 -0
  115. data/pkgs/tile-0.8.2/doc/xml/menubutton.tmml +80 -0
  116. data/pkgs/tile-0.8.2/doc/xml/notebook.tmml +306 -0
  117. data/pkgs/tile-0.8.2/doc/xml/paned.tmml +154 -0
  118. data/pkgs/tile-0.8.2/doc/xml/progressbar.tmml +151 -0
  119. data/pkgs/tile-0.8.2/doc/xml/radiobutton.tmml +109 -0
  120. data/pkgs/tile-0.8.2/doc/xml/scrollbar.tmml +233 -0
  121. data/pkgs/tile-0.8.2/doc/xml/separator.tmml +59 -0
  122. data/pkgs/tile-0.8.2/doc/xml/sizegrip.tmml +82 -0
  123. data/pkgs/tile-0.8.2/doc/xml/style.tmml +171 -0
  124. data/pkgs/tile-0.8.2/doc/xml/tile-intro.tmml +192 -0
  125. data/pkgs/tile-0.8.2/doc/xml/treeview.tmml +604 -0
  126. data/pkgs/tile-0.8.2/doc/xml/widget.tmml +372 -0
  127. data/pkgs/tile-0.8.2/entry.o +0 -0
  128. data/pkgs/tile-0.8.2/frame.o +0 -0
  129. data/pkgs/tile-0.8.2/generic/Makefile.in +221 -0
  130. data/pkgs/tile-0.8.2/generic/TODO +493 -0
  131. data/pkgs/tile-0.8.2/generic/altTheme.c +1172 -0
  132. data/pkgs/tile-0.8.2/generic/blink.c +168 -0
  133. data/pkgs/tile-0.8.2/generic/button.c +858 -0
  134. data/pkgs/tile-0.8.2/generic/cache.c +354 -0
  135. data/pkgs/tile-0.8.2/generic/clamTheme.c +974 -0
  136. data/pkgs/tile-0.8.2/generic/classicTheme.c +518 -0
  137. data/pkgs/tile-0.8.2/generic/configure +10334 -0
  138. data/pkgs/tile-0.8.2/generic/configure.in +100 -0
  139. data/pkgs/tile-0.8.2/generic/entry.c +1922 -0
  140. data/pkgs/tile-0.8.2/generic/frame.c +648 -0
  141. data/pkgs/tile-0.8.2/generic/gunk.h +44 -0
  142. data/pkgs/tile-0.8.2/generic/image.c +416 -0
  143. data/pkgs/tile-0.8.2/generic/label.c +663 -0
  144. data/pkgs/tile-0.8.2/generic/layout.c +1215 -0
  145. data/pkgs/tile-0.8.2/generic/manager.c +554 -0
  146. data/pkgs/tile-0.8.2/generic/manager.h +91 -0
  147. data/pkgs/tile-0.8.2/generic/notebook.c +1380 -0
  148. data/pkgs/tile-0.8.2/generic/paned.c +958 -0
  149. data/pkgs/tile-0.8.2/generic/pkgIndex.tcl.in +7 -0
  150. data/pkgs/tile-0.8.2/generic/progress.c +549 -0
  151. data/pkgs/tile-0.8.2/generic/scale.c +526 -0
  152. data/pkgs/tile-0.8.2/generic/scroll.c +253 -0
  153. data/pkgs/tile-0.8.2/generic/scrollbar.c +346 -0
  154. data/pkgs/tile-0.8.2/generic/separator.c +132 -0
  155. data/pkgs/tile-0.8.2/generic/square.c +306 -0
  156. data/pkgs/tile-0.8.2/generic/tagset.c +147 -0
  157. data/pkgs/tile-0.8.2/generic/tile.c +296 -0
  158. data/pkgs/tile-0.8.2/generic/tkElements.c +1280 -0
  159. data/pkgs/tile-0.8.2/generic/tkTheme.c +1708 -0
  160. data/pkgs/tile-0.8.2/generic/tkTheme.h +419 -0
  161. data/pkgs/tile-0.8.2/generic/tkThemeInt.h +45 -0
  162. data/pkgs/tile-0.8.2/generic/tkstate.c +268 -0
  163. data/pkgs/tile-0.8.2/generic/trace.c +145 -0
  164. data/pkgs/tile-0.8.2/generic/track.c +174 -0
  165. data/pkgs/tile-0.8.2/generic/treeview.c +3211 -0
  166. data/pkgs/tile-0.8.2/generic/ttk.decls +154 -0
  167. data/pkgs/tile-0.8.2/generic/ttkDecls.h +340 -0
  168. data/pkgs/tile-0.8.2/generic/ttkStubInit.c +61 -0
  169. data/pkgs/tile-0.8.2/generic/ttkStubLib.c +70 -0
  170. data/pkgs/tile-0.8.2/generic/widget.c +785 -0
  171. data/pkgs/tile-0.8.2/generic/widget.h +263 -0
  172. data/pkgs/tile-0.8.2/image.o +0 -0
  173. data/pkgs/tile-0.8.2/label.o +0 -0
  174. data/pkgs/tile-0.8.2/layout.o +0 -0
  175. data/pkgs/tile-0.8.2/library/altTheme.tcl +101 -0
  176. data/pkgs/tile-0.8.2/library/aquaTheme.tcl +62 -0
  177. data/pkgs/tile-0.8.2/library/button.tcl +85 -0
  178. data/pkgs/tile-0.8.2/library/clamTheme.tcl +139 -0
  179. data/pkgs/tile-0.8.2/library/classicTheme.tcl +108 -0
  180. data/pkgs/tile-0.8.2/library/combobox.tcl +439 -0
  181. data/pkgs/tile-0.8.2/library/cursors.tcl +36 -0
  182. data/pkgs/tile-0.8.2/library/defaults.tcl +118 -0
  183. data/pkgs/tile-0.8.2/library/dialog.tcl +274 -0
  184. data/pkgs/tile-0.8.2/library/entry.tcl +580 -0
  185. data/pkgs/tile-0.8.2/library/fonts.tcl +153 -0
  186. data/pkgs/tile-0.8.2/library/icons.tcl +105 -0
  187. data/pkgs/tile-0.8.2/library/keynav.tcl +192 -0
  188. data/pkgs/tile-0.8.2/library/menubutton.tcl +171 -0
  189. data/pkgs/tile-0.8.2/library/notebook.tcl +193 -0
  190. data/pkgs/tile-0.8.2/library/paned.tcl +87 -0
  191. data/pkgs/tile-0.8.2/library/progress.tcl +51 -0
  192. data/pkgs/tile-0.8.2/library/scale.tcl +54 -0
  193. data/pkgs/tile-0.8.2/library/scrollbar.tcl +125 -0
  194. data/pkgs/tile-0.8.2/library/sizegrip.tcl +77 -0
  195. data/pkgs/tile-0.8.2/library/tile.tcl +211 -0
  196. data/pkgs/tile-0.8.2/library/treeview.tcl +382 -0
  197. data/pkgs/tile-0.8.2/library/utils.tcl +254 -0
  198. data/pkgs/tile-0.8.2/library/winTheme.tcl +77 -0
  199. data/pkgs/tile-0.8.2/library/xpTheme.tcl +63 -0
  200. data/pkgs/tile-0.8.2/libtile0.8.2.so +0 -0
  201. data/pkgs/tile-0.8.2/libttkstub.a +0 -0
  202. data/pkgs/tile-0.8.2/license.terms +24 -0
  203. data/pkgs/tile-0.8.2/macosx/aquaTheme.c +1076 -0
  204. data/pkgs/tile-0.8.2/manager.o +0 -0
  205. data/pkgs/tile-0.8.2/notebook.o +0 -0
  206. data/pkgs/tile-0.8.2/paned.o +0 -0
  207. data/pkgs/tile-0.8.2/pkgIndex.tcl +3 -0
  208. data/pkgs/tile-0.8.2/progress.o +0 -0
  209. data/pkgs/tile-0.8.2/scale.o +0 -0
  210. data/pkgs/tile-0.8.2/scroll.o +0 -0
  211. data/pkgs/tile-0.8.2/scrollbar.o +0 -0
  212. data/pkgs/tile-0.8.2/separator.o +0 -0
  213. data/pkgs/tile-0.8.2/tagset.o +0 -0
  214. data/pkgs/tile-0.8.2/tclconfig/install-sh +119 -0
  215. data/pkgs/tile-0.8.2/tclconfig/tcl.m4 +4069 -0
  216. data/pkgs/tile-0.8.2/tclconfig/teax.m4 +109 -0
  217. data/pkgs/tile-0.8.2/tests/all.tcl +18 -0
  218. data/pkgs/tile-0.8.2/tests/bwidget.test +103 -0
  219. data/pkgs/tile-0.8.2/tests/cbtest.tcl +125 -0
  220. data/pkgs/tile-0.8.2/tests/combobox.test +51 -0
  221. data/pkgs/tile-0.8.2/tests/compound.tcl +92 -0
  222. data/pkgs/tile-0.8.2/tests/entry.test +285 -0
  223. data/pkgs/tile-0.8.2/tests/entrytest.tcl +78 -0
  224. data/pkgs/tile-0.8.2/tests/image.test +94 -0
  225. data/pkgs/tile-0.8.2/tests/labelframe.tcl +41 -0
  226. data/pkgs/tile-0.8.2/tests/labelframe.test +137 -0
  227. data/pkgs/tile-0.8.2/tests/layout.test +33 -0
  228. data/pkgs/tile-0.8.2/tests/misc.test +35 -0
  229. data/pkgs/tile-0.8.2/tests/nbtest.tcl +66 -0
  230. data/pkgs/tile-0.8.2/tests/notebook.test +500 -0
  231. data/pkgs/tile-0.8.2/tests/paned.test +298 -0
  232. data/pkgs/tile-0.8.2/tests/progress.test +92 -0
  233. data/pkgs/tile-0.8.2/tests/pwtest.tcl +90 -0
  234. data/pkgs/tile-0.8.2/tests/sbtest.tcl +79 -0
  235. data/pkgs/tile-0.8.2/tests/scrollbar.test +77 -0
  236. data/pkgs/tile-0.8.2/tests/sgtest.tcl +52 -0
  237. data/pkgs/tile-0.8.2/tests/testutils.tcl +20 -0
  238. data/pkgs/tile-0.8.2/tests/tile.test +674 -0
  239. data/pkgs/tile-0.8.2/tests/treetags.test +78 -0
  240. data/pkgs/tile-0.8.2/tests/treeview.test +563 -0
  241. data/pkgs/tile-0.8.2/tests/tvtest.tcl +332 -0
  242. data/pkgs/tile-0.8.2/tests/validate.test +278 -0
  243. data/pkgs/tile-0.8.2/tile.o +0 -0
  244. data/pkgs/tile-0.8.2/tkElements.o +0 -0
  245. data/pkgs/tile-0.8.2/tkTheme.o +0 -0
  246. data/pkgs/tile-0.8.2/tkstate.o +0 -0
  247. data/pkgs/tile-0.8.2/tools/genStubs.tcl +861 -0
  248. data/pkgs/tile-0.8.2/trace.o +0 -0
  249. data/pkgs/tile-0.8.2/track.o +0 -0
  250. data/pkgs/tile-0.8.2/treeview.o +0 -0
  251. data/pkgs/tile-0.8.2/ttkStubInit.o +0 -0
  252. data/pkgs/tile-0.8.2/ttkStubLib.o +0 -0
  253. data/pkgs/tile-0.8.2/widget.o +0 -0
  254. data/pkgs/tile-0.8.2/win/Tile.dsp +261 -0
  255. data/pkgs/tile-0.8.2/win/makefile.vc +527 -0
  256. data/pkgs/tile-0.8.2/win/monitor.c +164 -0
  257. data/pkgs/tile-0.8.2/win/nmakehlp.c +483 -0
  258. data/pkgs/tile-0.8.2/win/rules.vc +512 -0
  259. data/pkgs/tile-0.8.2/win/tile.rc +40 -0
  260. data/pkgs/tile-0.8.2/win/winTheme.c +734 -0
  261. data/pkgs/tile-0.8.2/win/xpTheme.c +1029 -0
  262. data/spec/app_spec.rb +48 -0
  263. data/spec/customer_spec.rb +31 -0
  264. data/spec/fixtures/graph.expectation +18 -0
  265. data/spec/payment_spec.rb +19 -0
  266. data/spec/pratt_spec.rb +148 -0
  267. data/spec/project_spec.rb +163 -0
  268. data/spec/rcov.opts +0 -0
  269. data/spec/spec.opts +1 -0
  270. data/spec/spec_helper.rb +21 -0
  271. data/spec/whence_spec.rb +54 -0
  272. data/tasks/pratt.rb +84 -0
  273. data/templates/model.eruby +12 -0
  274. data/templates/spec.eruby +8 -0
  275. data/views/env.rb +22 -0
  276. data/views/graph.eruby +20 -0
  277. data/views/invoice.eruby +148 -0
  278. data/views/main.rb +92 -0
  279. data/views/pid.eruby +3 -0
  280. data/views/pop.rb +94 -0
  281. data/views/pop2.rb +75 -0
  282. data/views/raw.eruby +11 -0
  283. metadata +390 -0
@@ -0,0 +1,512 @@
1
+ #------------------------------------------------------------------------------
2
+ # rules.vc --
3
+ #
4
+ # Microsoft Visual C++ makefile include for decoding the commandline
5
+ # macros. This file does not need editing to build Tcl.
6
+ #
7
+ # This version is modified from the Tcl source version to support
8
+ # building extensions using nmake.
9
+ #
10
+ # See the file "license.terms" for information on usage and redistribution
11
+ # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
12
+ #
13
+ # Copyright (c) 2001-2002 David Gravereaux.
14
+ # Copyright (c) 2003-2005 Patrick Thoyts
15
+ #
16
+ #------------------------------------------------------------------------------
17
+ # RCS: @(#) rules.vc,v 1.3 2006/07/11 21:36:26 patthoyts Exp
18
+ #------------------------------------------------------------------------------
19
+
20
+ !ifndef _RULES_VC
21
+ _RULES_VC = 1
22
+
23
+ cc32 = $(CC) # built-in default.
24
+ link32 = link
25
+ lib32 = lib
26
+ rc32 = $(RC) # built-in default.
27
+
28
+ !ifndef INSTALLDIR
29
+ ### Assume the normal default.
30
+ _INSTALLDIR = C:\Program Files\Tcl
31
+ !else
32
+ ### Fix the path separators.
33
+ _INSTALLDIR = $(INSTALLDIR:/=\)
34
+ !endif
35
+
36
+ !ifndef MACHINE
37
+ MACHINE = IX86
38
+ !endif
39
+
40
+ !ifndef CFG_ENCODING
41
+ CFG_ENCODING = \"cp1252\"
42
+ !endif
43
+
44
+ #----------------------------------------------------------
45
+ # Set the proper copy method to avoid overwrite questions
46
+ # to the user when copying files and selecting the right
47
+ # "delete all" method.
48
+ #----------------------------------------------------------
49
+
50
+ !if "$(OS)" == "Windows_NT"
51
+ RMDIR = rmdir /S /Q
52
+ !if ![ver | find "4.0" > nul]
53
+ CPY = echo y | xcopy /i
54
+ !else
55
+ CPY = xcopy /i /y
56
+ !endif
57
+ !else
58
+ CPY = xcopy /i
59
+ RMDIR = deltree /Y
60
+ !endif
61
+
62
+
63
+ !message ===============================================================================
64
+
65
+ #----------------------------------------------------------
66
+ # build the helper app we need to overcome nmake's limiting
67
+ # environment.
68
+ #----------------------------------------------------------
69
+
70
+ !if !exist(nmakehlp.exe)
71
+ !if [$(cc32) -nologo nmakehlp.c -link -subsystem:console > nul]
72
+ !endif
73
+ !endif
74
+
75
+ #----------------------------------------------------------
76
+ # Test for compiler features
77
+ #----------------------------------------------------------
78
+
79
+ ### test for optimizations
80
+ !if [nmakehlp -c -Oti]
81
+ !message *** Compiler has 'Optimizations'
82
+ OPTIMIZING = 1
83
+ !else
84
+ !message *** Compiler doesn't have 'Optimizations'
85
+ OPTIMIZING = 0
86
+ !endif
87
+
88
+ OPTIMIZATIONS =
89
+
90
+ !if [nmakehlp -c -O2]
91
+ OPTIMIZATIONS = $(OPTIMIZATIONS) -O2
92
+ !endif
93
+
94
+ !if [nmakehlp -c -Op]
95
+ OPTIMIZATIONS = $(OPTIMIZATIONS) -Op
96
+ !endif
97
+
98
+ !if [nmakehlp -c -fp:strict]
99
+ OPTIMIZATIONS = $(OPTIMIZATIONS) -fp:strict
100
+ !endif
101
+
102
+ !if [nmakehlp -c -Gs]
103
+ OPTIMIZATIONS = $(OPTIMIZATIONS) -Gs
104
+ !endif
105
+
106
+ !if [nmakehlp -c -GS]
107
+ OPTIMIZATIONS = $(OPTIMIZATIONS) -GS
108
+ !endif
109
+
110
+ !if "$(MACHINE)" == "IX86"
111
+ ### test for pentium errata
112
+ !if [nmakehlp -c -QI0f]
113
+ !message *** Compiler has 'Pentium 0x0f fix'
114
+ PENT_0F_ERRATA = 1
115
+ !else
116
+ !message *** Compiler doesn't have 'Pentium 0x0f fix'
117
+ PENT_0F_ERRATA = 0
118
+ !endif
119
+ ### test for -align:4096, when align:512 will do.
120
+ !if [nmakehlp -l -opt:nowin98]
121
+ !message *** Linker has 'Win98 alignment problem'
122
+ ALIGN98_HACK = 1
123
+ !else
124
+ !message *** Linker doesn't have 'Win98 alignment problem'
125
+ ALIGN98_HACK = 0
126
+ !endif
127
+ !else
128
+ PENT_0F_ERRATA = 0
129
+ ALIGN98_HACK = 0
130
+ !endif
131
+
132
+ !if "$(MACHINE)" == "IA64"
133
+ ### test for Itanium errata
134
+ !if [nmakehlp -c -QIA64_Bx]
135
+ !message *** Compiler has 'B-stepping errata workarounds'
136
+ ITAN_B_ERRATA = 1
137
+ !else
138
+ !message *** Compiler doesn't have 'B-stepping errata workarounds'
139
+ ITAN_B_ERRATA = 0
140
+ !endif
141
+ !else
142
+ ITAN_B_ERRATA = 0
143
+ !endif
144
+
145
+ #----------------------------------------------------------
146
+ # Decode the options requested.
147
+ #----------------------------------------------------------
148
+
149
+ !if "$(OPTS)" == "" || [nmakehlp -f "$(OPTS)" "none"]
150
+ STATIC_BUILD = 0
151
+ TCL_THREADS = 1
152
+ DEBUG = 0
153
+ PROFILE = 0
154
+ MSVCRT = 0
155
+ LOIMPACT = 0
156
+ TCL_USE_STATIC_PACKAGES = 0
157
+ USE_THREAD_ALLOC = 1
158
+ USE_THREAD_STORAGE = 1
159
+ UNCHECKED = 0
160
+ !else
161
+ !if [nmakehlp -f $(OPTS) "static"]
162
+ !message *** Doing static
163
+ STATIC_BUILD = 1
164
+ !else
165
+ STATIC_BUILD = 0
166
+ !endif
167
+ !if [nmakehlp -f $(OPTS) "msvcrt"]
168
+ !message *** Doing msvcrt
169
+ MSVCRT = 1
170
+ !else
171
+ MSVCRT = 0
172
+ !endif
173
+ !if [nmakehlp -f $(OPTS) "staticpkg"]
174
+ !message *** Doing staticpkg
175
+ TCL_USE_STATIC_PACKAGES = 1
176
+ !else
177
+ TCL_USE_STATIC_PACKAGES = 0
178
+ !endif
179
+ !if [nmakehlp -f $(OPTS) "nothreads"]
180
+ !message *** Compile explicitly for non-threaded tcl
181
+ TCL_THREADS = 0
182
+ !else
183
+ TCL_THREADS = 1
184
+ !endif
185
+ !if [nmakehlp -f $(OPTS) "symbols"]
186
+ !message *** Doing symbols
187
+ DEBUG = 1
188
+ !else
189
+ DEBUG = 0
190
+ !endif
191
+ !if [nmakehlp -f $(OPTS) "profile"]
192
+ !message *** Doing profile
193
+ PROFILE = 1
194
+ !else
195
+ PROFILE = 0
196
+ !endif
197
+ !if [nmakehlp -f $(OPTS) "loimpact"]
198
+ !message *** Doing loimpact
199
+ LOIMPACT = 1
200
+ !else
201
+ LOIMPACT = 0
202
+ !endif
203
+ !if [nmakehlp -f $(OPTS) "thrdalloc"]
204
+ !message *** Doing thrdalloc
205
+ USE_THREAD_ALLOC = 1
206
+ !else
207
+ USE_THREAD_ALLOC = 0
208
+ !endif
209
+ !if [nmakehlp -f $(OPTS) "thrdstorage"]
210
+ !message *** Doing thrdstorage
211
+ USE_THREAD_STORAGE = 1
212
+ !else
213
+ USE_THREAD_STORAGE = 0
214
+ !endif
215
+ !if [nmakehlp -f $(OPTS) "unchecked"]
216
+ !message *** Doing unchecked
217
+ UNCHECKED = 1
218
+ !else
219
+ UNCHECKED = 0
220
+ !endif
221
+ !endif
222
+
223
+
224
+ !if !$(STATIC_BUILD)
225
+ # Make sure we don't build overly fat DLLs.
226
+ MSVCRT = 1
227
+ # We shouldn't statically put the extensions inside the shell when dynamic.
228
+ TCL_USE_STATIC_PACKAGES = 0
229
+ !endif
230
+
231
+
232
+ #----------------------------------------------------------
233
+ # Figure-out how to name our intermediate and output directories.
234
+ # We wouldn't want different builds to use the same .obj files
235
+ # by accident.
236
+ #----------------------------------------------------------
237
+
238
+ #----------------------------------------
239
+ # Naming convention:
240
+ # t = full thread support.
241
+ # s = static library (as opposed to an
242
+ # import library)
243
+ # g = linked to the debug enabled C
244
+ # run-time.
245
+ # x = special static build when it
246
+ # links to the dynamic C run-time.
247
+ #----------------------------------------
248
+ SUFX = sgx
249
+
250
+ !if $(DEBUG)
251
+ BUILDDIRTOP = Debug
252
+ !else
253
+ BUILDDIRTOP = Release
254
+ !endif
255
+
256
+ !if !$(DEBUG) || $(DEBUG) && $(UNCHECKED)
257
+ SUFX = $(SUFX:g=)
258
+ !endif
259
+
260
+ TMP_DIRFULL = .\$(BUILDDIRTOP)\$(PROJECT)_ThreadedDynamicStaticX
261
+
262
+ !if !$(STATIC_BUILD)
263
+ TMP_DIRFULL = $(TMP_DIRFULL:Static=)
264
+ SUFX = $(SUFX:s=)
265
+ EXT = dll
266
+ !if $(MSVCRT)
267
+ TMP_DIRFULL = $(TMP_DIRFULL:X=)
268
+ SUFX = $(SUFX:x=)
269
+ !endif
270
+ !else
271
+ TMP_DIRFULL = $(TMP_DIRFULL:Dynamic=)
272
+ EXT = lib
273
+ !if !$(MSVCRT)
274
+ TMP_DIRFULL = $(TMP_DIRFULL:X=)
275
+ SUFX = $(SUFX:x=)
276
+ !endif
277
+ !endif
278
+
279
+ !if !$(TCL_THREADS)
280
+ TMP_DIRFULL = $(TMP_DIRFULL:Threaded=)
281
+ SUFX = $(SUFX:t=)
282
+ !endif
283
+
284
+ !ifndef TMP_DIR
285
+ TMP_DIR = $(TMP_DIRFULL)
286
+ !ifndef OUT_DIR
287
+ OUT_DIR = .\$(BUILDDIRTOP)
288
+ !endif
289
+ !else
290
+ !ifndef OUT_DIR
291
+ OUT_DIR = $(TMP_DIR)
292
+ !endif
293
+ !endif
294
+
295
+
296
+ #----------------------------------------------------------
297
+ # Decode the statistics requested.
298
+ #----------------------------------------------------------
299
+
300
+ !if "$(STATS)" == "" || [nmakehlp -f "$(STATS)" "none"]
301
+ TCL_MEM_DEBUG = 0
302
+ TCL_COMPILE_DEBUG = 0
303
+ !else
304
+ !if [nmakehlp -f $(STATS) "memdbg"]
305
+ !message *** Doing memdbg
306
+ TCL_MEM_DEBUG = 1
307
+ !else
308
+ TCL_MEM_DEBUG = 0
309
+ !endif
310
+ !if [nmakehlp -f $(STATS) "compdbg"]
311
+ !message *** Doing compdbg
312
+ TCL_COMPILE_DEBUG = 1
313
+ !else
314
+ TCL_COMPILE_DEBUG = 0
315
+ !endif
316
+ !endif
317
+
318
+
319
+ #----------------------------------------------------------
320
+ # Decode the checks requested.
321
+ #----------------------------------------------------------
322
+
323
+ !if "$(CHECKS)" == "" || [nmakehlp -f "$(CHECKS)" "none"]
324
+ TCL_NO_DEPRECATED = 0
325
+ FULLWARNINGS = 0
326
+ !else
327
+ !if [nmakehlp -f $(CHECKS) "nodep"]
328
+ !message *** Doing nodep check
329
+ TCL_NO_DEPRECATED = 1
330
+ !else
331
+ TCL_NO_DEPRECATED = 0
332
+ !endif
333
+ !if [nmakehlp -f $(CHECKS) "fullwarn"]
334
+ !message *** Doing full warnings check
335
+ FULLWARNINGS = 1
336
+ !else
337
+ FULLWARNINGS = 0
338
+ !endif
339
+ !endif
340
+
341
+
342
+ #----------------------------------------------------------
343
+ # Set our defines now armed with our options.
344
+ #----------------------------------------------------------
345
+
346
+ OPTDEFINES = -DTCL_CFGVAL_ENCODING=$(CFG_ENCODING)
347
+
348
+ !if $(TCL_MEM_DEBUG)
349
+ OPTDEFINES = $(OPTDEFINES) -DTCL_MEM_DEBUG
350
+ !endif
351
+ !if $(TCL_COMPILE_DEBUG)
352
+ OPTDEFINES = $(OPTDEFINES) -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS
353
+ !endif
354
+ !if $(TCL_THREADS)
355
+ OPTDEFINES = $(OPTDEFINES) -DTCL_THREADS=1
356
+ !if $(USE_THREAD_ALLOC)
357
+ OPTDEFINES = $(OPTDEFINES) -DUSE_THREAD_ALLOC=1
358
+ !endif
359
+ !if $(USE_THREAD_STORAGE)
360
+ OPTDEFINES = $(OPTDEFINES) -DUSE_THREAD_STORAGE=1
361
+ !endif
362
+ !endif
363
+ !if $(STATIC_BUILD)
364
+ OPTDEFINES = $(OPTDEFINES) -DSTATIC_BUILD
365
+ !endif
366
+ !if $(TCL_NO_DEPRECATED)
367
+ OPTDEFINES = $(OPTDEFINES) -DTCL_NO_DEPRECATED
368
+ !endif
369
+
370
+ !if $(DEBUG)
371
+ OPTDEFINES = $(OPTDEFINES) -DTCL_CFG_DEBUG
372
+ !elseif $(OPTIMIZING)
373
+ OPTDEFINES = $(OPTDEFINES) -DTCL_CFG_OPTIMIZED
374
+ !endif
375
+ !if $(PROFILE)
376
+ OPTDEFINES = $(OPTDEFINES) -DTCL_CFG_PROFILED
377
+ !endif
378
+ !if "$(MACHINE)" == "IA64"
379
+ OPTDEFINES = $(OPTDEFINES) -DTCL_CFG_DO64BIT
380
+ !endif
381
+
382
+
383
+ #----------------------------------------------------------
384
+ # Get common info used when building extensions.
385
+ #----------------------------------------------------------
386
+
387
+ !if "$(PROJECT)" != "tcl"
388
+
389
+ # If INSTALLDIR set to tcl root dir then reset to the lib dir.
390
+ !if exist("$(_INSTALLDIR)\include\tcl.h")
391
+ _INSTALLDIR=$(_INSTALLDIR)\lib
392
+ !endif
393
+
394
+ !if !defined(TCLDIR)
395
+ !if exist("$(_INSTALLDIR)\..\include\tcl.h")
396
+ TCLINSTALL = 1
397
+ _TCLDIR = $(_INSTALLDIR)\..
398
+ _TCL_H = $(_INSTALLDIR)\..\include\tcl.h
399
+ TCLDIR = $(_INSTALLDIR)\..
400
+ !else
401
+ MSG=^
402
+ Failed to find tcl.h. Set the TCLDIR macro.
403
+ !error $(MSG)
404
+ !endif
405
+ !else
406
+ _TCLDIR = $(TCLDIR:/=\)
407
+ !if exist("$(_TCLDIR)\include\tcl.h")
408
+ TCLINSTALL = 1
409
+ _TCL_H = $(_TCLDIR)\include\tcl.h
410
+ !elseif exist("$(_TCLDIR)\generic\tcl.h")
411
+ TCLINSTALL = 0
412
+ _TCL_H = $(_TCLDIR)\generic\tcl.h
413
+ !else
414
+ MSG =^
415
+ Failed to find tcl.h. The TCLDIR macro does not appear correct.
416
+ !error $(MSG)
417
+ !endif
418
+ !endif
419
+
420
+ !if [nmakehlp -v "$(_TCL_H)" ""] == 0
421
+ !include version.vc
422
+ !else
423
+ TCL_DOTVERSION = 8.5
424
+ TCL_VERSION = $(TCL_DOTVERSION:.=)
425
+ !endif
426
+
427
+ !if $(TCLINSTALL)
428
+ TCLSH = "$(_TCLDIR)\bin\tclsh$(TCL_VERSION)$(SUFX).exe"
429
+ TCLSTUBLIB = "$(_TCLDIR)\lib\tclstub$(TCL_VERSION).lib"
430
+ TCLIMPLIB = "$(_TCLDIR)\lib\tcl$(TCL_VERSION)$(SUFX).lib"
431
+ TCL_LIBRARY = $(_TCLDIR)\lib
432
+ TCL_INCLUDES = -I"$(_TCLDIR)\include"
433
+ !else
434
+ TCLSH = "$(_TCLDIR)\win\$(BUILDDIRTOP)\tclsh$(TCL_VERSION)$(SUFX).exe"
435
+ TCLSTUBLIB = "$(_TCLDIR)\win\$(BUILDDIRTOP)\tclstub$(TCL_VERSION).lib"
436
+ TCLIMPLIB = "$(_TCLDIR)\win\$(BUILDDIRTOP)\tcl$(TCL_VERSION)$(SUFX).lib"
437
+ TCL_LIBRARY = $(_TCLDIR)\library
438
+ TCL_INCLUDES = -I"$(_TCLDIR)\generic" -I"$(_TCLDIR)\win"
439
+ !endif
440
+
441
+ !endif
442
+
443
+ #----------------------------------------------------------
444
+ # Get Tk info for building extensions.
445
+ #----------------------------------------------------------
446
+
447
+ !if "$(PROJECT)" != "tcl" && "$(PROJECT)" != "tk"
448
+
449
+ !if !defined(TKDIR)
450
+ !if exist("$(_INSTALLDIR)\..\include\tk.h")
451
+ TKINSTALL = 1
452
+ _TKDIR = $(_INSTALLDIR)\..
453
+ _TK_H = $(_TKDIR)\include\tk.h
454
+ TKDIR = $(_TKDIR)
455
+ !elseif exist("$(_TCLDIR)\include\tk.h")
456
+ TKINSTALL = 1
457
+ _TKDIR = $(_TCLDIR)
458
+ _TK_H = $(_TKDIR)\include\tk.h
459
+ TKDIR = $(_TKDIR)
460
+ !else
461
+ MSG =^
462
+ Failed to find tk.h. Set the TKDIR macro.
463
+ !error $(MSG)
464
+ !endif
465
+ !else
466
+ _TKDIR = $(TKDIR:/=\)
467
+ !if exist("$(_TKDIR)\include\tk.h")
468
+ TKINSTALL = 1
469
+ _TK_H = $(_TKDIR)\include\tk.h
470
+ !elseif exist("$(_TKDIR)\generic\tk.h")
471
+ TKINSTALL = 0
472
+ _TK_H = $(_TKDIR)\generic\tk.h
473
+ !else
474
+ MSG =^
475
+ Failed to find tk.h. The TKDIR macro does not appear correct.
476
+ !error $(MSG)
477
+ !endif
478
+ !endif
479
+
480
+ !if [nmakehlp -v "$(_TCL_H)" "$(_TK_H)"] == 0
481
+ !include version.vc
482
+ !else
483
+ TK_DOTVERSION = 8.5
484
+ TK_VERSION = $(TK_DOTVERSION:.=)
485
+ !endif
486
+
487
+ !if $(TKINSTALL)
488
+ WISH = "$(_TKDIR)\bin\wish$(TK_VERSION)$(SUFX).exe"
489
+ TKSTUBLIB = "$(_TKDIR)\lib\tkstub$(TK_VERSION).lib"
490
+ TKIMPLIB = "$(_TKDIR)\lib\tk$(TK_VERSION)$(SUFX).lib"
491
+ TK_INCLUDES = -I"$(_TKDIR)\include"
492
+ !else
493
+ WISH = "$(_TKDIR)\win\$(BUILDDIRTOP)\wish$(TCL_VERSION)$(SUFX).exe"
494
+ TKSTUBLIB = "$(_TKDIR)\win\$(BUILDDIRTOP)\tkstub$(TCL_VERSION).lib"
495
+ TKIMPLIB = "$(_TKDIR)\win\$(BUILDDIRTOP)\tk$(TCL_VERSION)$(SUFX).lib"
496
+ TK_INCLUDES = -I"$(_TKDIR)\generic" -I"$(_TKDIR)\win" -I"$(_TKDIR)\xlib"
497
+ !endif
498
+
499
+ !endif
500
+
501
+
502
+
503
+ #----------------------------------------------------------
504
+ # Display stats being used.
505
+ #----------------------------------------------------------
506
+
507
+ !message *** Intermediate directory will be '$(TMP_DIR)'
508
+ !message *** Output directory will be '$(OUT_DIR)'
509
+ !message *** Suffix for binaries will be '$(SUFX)'
510
+ !message *** Optional defines are '$(OPTDEFINES)'
511
+
512
+ !endif