Pratt 1.5.6

Sign up to get free protection for your applications and to get access to all the features.
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