Tcl Library Source Code

Check-in [2e0a176af7]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Removed `devdoc/installation.txt`. Was a duplicate of `devdoc/dirlayout_install.txt`, thus superfluous. Reworked the installation instructions. Folded unix and windows into a single section based on the older `devdoc/INSTALL.txt`. This thus became superfluous, and was removed.
Timelines: family | ancestors | descendants | both | doc-overhaul
Files: files | file ages | folders
SHA3-256:2e0a176af74db302b068468e2510e789c670479fbbd1b1bb3c441de7d314ca0a
User & Date: aku 2019-03-06 08:13:19
Context
2019-03-06
08:16
Squash very old (read: outdated) dev- and release guides. check-in: 7f953a0106 user: aku tags: doc-overhaul
08:13
Removed `devdoc/installation.txt`. Was a duplicate of `devdoc/dirlayout_install.txt`, thus superfluous. Reworked the installation instructions. Folded unix and windows into a single section based on the older `devdoc/INSTALL.txt`. This thus became superfluous, and was removed. check-in: 2e0a176af7 user: aku tags: doc-overhaul
07:32
Tweaked the `sak.tcl localdoc` command to match the change from `embedded/index.html` to `embedded/index.md`. Added the first set of global documentation (license, how to get the sources, installation instructions). Extended `README.md` and `embedded/index.md` with references to the new documentation. Regenerated the documentation, embedded and for installation. check-in: 7a4994784a user: aku tags: doc-overhaul
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Deleted devdoc/INSTALL.txt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
How to install Tcllib
=====================

Introduction
------------

The tcllib distribution, whether a snapshot directly from CVS, or
officially released, offers a single method for installing tcllib,
based on Tcl itself.

This is based on the assumption that for tcllib to be of use Tcl has
to be present, and therefore can be used.

This single method however can be used in a variety of ways.

0	For an unwrapped (= directory) distribution or CVS snapshot

	a.	either call the application 'installer.tcl' directly,
	b	or use

			% configure ; make install

		The latter is provided for people which are used to
		this method and more comfortable with it. In end this
		boils down into a call of 'installer.tcl' too.

1.	A starpack distribution (window-only) is a self-extracting
	installer which internally uses the aforementioned installer.

2.	A starkit distribution is very much like a starpack, but
	required an external interpreyter to run. This can be any tcl
	interpreter which has all the packages to support starkits
	(tclvfs, memchan, trf).

3.	A distribution in a tarball has to be unpacked first, then any
	of the methods described in (0) can be used.


Usage of the installer
----------------------

The installer selects automatically either a gui based mode, or a
command line based mode. If the package Tk is present and can be
loaded, then the GUI mode is entered, else the system falls back to
the command line.

Note that it is possible to specify options on the command line even
if the installer ultimatively selects a gui mode. In that case the
hardwired defaults and the options determine the data presented to the
user for editing.

Command line help can be asked for by using the option -help when
running the installer (3) or the distribution itself in the case of
(1) or (2).

The installer will select a number of defaults for the locations of
packages, examples, and documentation, and also the format of the
documentation. The user can overide these defaults in the GUI, or by
specifying additional options.

The defaults depend on the platform detected (unix/windows) and the
executable used to run the installer. In the case of a starpack
distribution (1) this means that _no defaults_ are possible for the
various locations as the executable is part of the distribution and
has no knowledge of its environment.

In all other cases the intepreter executable is outside of the
distribution, which means that its location can be used to determine
sensible defaults.

Notes
-----

The installer will overwrite an existing installation of tcllib 1.6
without asking back after the initial confirmation is given. And if
the user chooses the same directory as for tcllib 1.4, or 1.3, etc.
then the installer will overwrite that too.
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
























































































































































Deleted devdoc/installation.txt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Tcllib installation directory layout
====================================

This document describes the possible layouts for an installed tcllib,
discusses their pro and contra and makes a choice for Tcllib 1.4. A
roadmap of changes in the future is made available as appendix.

[L1/D] Deep layout
------------------

	This is the layout of Tcllib 1.3 (and versions before that).

	A single directory tcllib<version> is created, and all
	subdirectories of the 'modules' subdirectory in the
	distribution is copied into it. This is restricted at large to
	*.tcl files, with exception made for some modules with special
	needs.

	Pro:
	Contra:
		Makes the handling of the various package indices,
		well, not difficult, but uncomfortable.


[L2/Fa] Flat layout 1
---------------------

	A directory is created for each module of tcllib.

	Pro:
		Handling of package indices is easier than for L1/D, a
		toplevel index file with all its problems is not
		required anymore.

	Contra:
		Directories should be versioned to avoid conflicts
		between multiple releases. modules have no
		version. This can be faked for modules containing one
		package, but not for the modules with more.


[L2/Fb] Flat layout 2
---------------------

	A directory is created for each package in tcllib.

	Pro
		Handling of package indices is easy, one per package.

	Contra:
		Modules containing more than one package are difficult
		to handle. The system has to split them into the
		individual packages. This rendered very difficult
		because of shared package index files.
	
		This can be solved by moving tcllib (back) towards of
		one package per module. When that goal is reached
		L2/Fa and L2/Fb become the same, and the contra for
		L2/Fa vanishes too as an exact version number can be
		associated with each directory.

Chosen layout for Tcllib 1.4
----------------------------

	L2/D

	Despite the problems with package indices the contras against
	the flat structures are too strong at this point in
	time. Automatic solutions are not really possible, or require
	a very high effort.

Roadmap
-------
	Change the module directories of tcllib to contain exactly one
	package per directory, with appropriate index (and meta data).

	This not only makes sense for easier handling of installation
	and package indices, but also in the greater context of
	wrapping code for deployment.


-----------------------------------
This document is in the public domain.

			Andreas Kupries	<[email protected]>
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<








































































































































































Changes to devdoc/parts/b_critcl.inc.

4
5
6
7
8
9
10
11

12
13
14
15
16
17
18
19
20
21
22
23
24







[syscmd critcl]-based C code whose use will boost the performance of
the packages using them. As these accelerators are optional they are
not installed by default.

[para] To build the accelerators the normally optional dependency on
[syscmd critcl] becomes required.

[para] To install Tcllib with the accelerators run


[example {
    ./configure
    make critcl # This builds the shared library holding the accelerators
    make install
}]

[para] The underlying tool is [file sak.tcl] in the toplevel directory
of Tcllib and the command [cmd {make critcl}] is just a wrapper around

[example {
    ./sak.tcl critcl
}]













|
>













>
>
>
>
>
>
>
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[syscmd critcl]-based C code whose use will boost the performance of
the packages using them. As these accelerators are optional they are
not installed by default.

[para] To build the accelerators the normally optional dependency on
[syscmd critcl] becomes required.

[para] To install Tcllib with the accelerators in a unix-type
environment invoke:

[example {
    ./configure
    make critcl # This builds the shared library holding the accelerators
    make install
}]

[para] The underlying tool is [file sak.tcl] in the toplevel directory
of Tcllib and the command [cmd {make critcl}] is just a wrapper around

[example {
    ./sak.tcl critcl
}]

[para] Therefore in a Windows environment instead invoke

[example {
    /path/to/tclsh ./sak.tcl critcl
    /path/to/tclsh ./installer.tcl
}]

Added devdoc/parts/b_tooling.inc.






















































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
The Tcllib distribution, whether a checkout directly from the source
repository, or an official release, offers a single method for
installing it, based on Tcl itself.

[para] This is based on the assumption that for Tcllib to be of use
Tcl has to be present, and therefore can be used in the implementation
of the install code.

[para] The relevant tool is the [file installer.tcl] script found in
the toplevel directory of a checkout or release.

[para] It can be used in a variety of ways:

[list_begin enumerated]

[enum] It is always possible to invoke the tool directly, either as

[example {
    ./installer.tcl
}]

or

[example {
    /path/to/tclsh ./installer.tcl
}]

The second form is required on Windows (without a Unix emulation),
except if the Tcl installation is configured to handle [file .tcl]
files on a double-click.

[enum]

In a unix-type environment, i.e. Linux, BSD and related, including OS
X, and Windows using some kind of unix-emulation like [syscmd MSYS],
[syscmd Cygwin], etc.) it is also possible to use

[example {
    ./configure
    make install
}]

in the toplevel directory of Tcllib itself.

[para] To build in a directory [file D] outside of Tcllib's toplevel
directory simply make [file D] the current working directory and
invoke [syscmd configure] with either its absolute path or a proper
relative path.

[para] This will non-interactively install all packages, applications
found in Tcllib, and their manpages, in directories derived from what
[syscmd configure] found out about the system.

[list_end]

[para] The installer selects automatically either a gui based mode, or
a command line based mode. If the package [package Tk] is present and
can be loaded, then the GUI mode is entered, else the system falls
back to the command line.

[para] Note that it is possible to specify options on the command line
even if the installer ultimatively selects GUI mode. In that case the
hardwired defaults and the options determine the data presented to the
user for editing.

[para] Command line help can be asked for by using the option [option -help] when
invoking the installer, i.e.

[example {
    ./installer.tcl -help
}]

This will print a short list of the available options to the standard
output channel. For more examples see the various [term install]
targets found in [file Makefile.in].

[para] The installer will select a number of defaults for the
locations of packages, examples, and documentation, and also the
format of the documentation. The user can overide these defaults in
the GUI, or by specifying additional options.

[para] The defaults depend on the platform detected (unix/windows) and
on the [syscmd tclsh] executable used to run the installer.

[para][strong Attention] The installer will overwrite an existing
installation of a Tcllib with the same version without asking back
after the initial confirmation is given.

Further if the user chooses the same directory as chosen for/by
previous installations then these will be overwritten as well.

Changes to devdoc/tcllib_installer.man.

48
49
50
51
52
53
54
55
56
57
58
59
60
[include parts/rq_tcl.inc]
[include parts/rq_critcl.inc]

[comment {= build instructions ==============================================}]
[section {Build & Installation Instructions}]

[include parts/b_unix.inc]
[include parts/b_windows.inc]
[include parts/b_critcl.inc]

[manpage_end]







|
<




48
49
50
51
52
53
54
55

56
57
58
59
[include parts/rq_tcl.inc]
[include parts/rq_critcl.inc]

[comment {= build instructions ==============================================}]
[section {Build & Installation Instructions}]

[include parts/b_tooling.inc]

[include parts/b_critcl.inc]

[manpage_end]

Changes to embedded/www/tcllib/files/devdoc/tcllib_installer.html.

111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
...
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
...
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274










275
276
277
278
279
280
281
282
283





284
285
286
287
<ul>
<li class="doctools_subsection"><a href="#subsection1">Tcl</a></li>
<li class="doctools_subsection"><a href="#subsection2">CriTcl</a></li>
</ul>
</li>
<li class="doctools_section"><a href="#section3">Build &amp; Installation Instructions</a>
<ul>
<li class="doctools_subsection"><a href="#subsection3">Unix</a></li>
<li class="doctools_subsection"><a href="#subsection4">Windows</a></li>
<li class="doctools_subsection"><a href="#subsection5">Critcl &amp; Accelerators</a></ul>
</li>
</ul>
</div>
<div id="section1" class="doctools_section"><h2><a name="section1">Description</a></h2>
<p>Welcome to Tcllib, the Tcl Standard Library. Note that Tcllib is not a
package itself. It is a collection of (semi-independent) <i class="term"><a href="../../../index.html#tcl">Tcl</a></i>
packages that provide utility functions useful to a large collection
................................................................................
please file a ticket against <i class="term"><a href="../../../index.html#tcl">Tcl</a></i>, or the vendor of your
distribution, and <em>not</em> <i class="term"><a href="../../../index.html#tcllib">Tcllib</a></i>.</p>
</div>
<div id="subsection2" class="doctools_subsection"><h3><a name="subsection2">CriTcl</a></h3>
<p>The <b class="syscmd">critcl</b> tool is an <em>optional</em> dependency.</p>
<p>It is only required when trying to build the C-based
<i class="term">accelerators</i> for a number of packages, as explained in
<span class="sectref"><a href="#subsection5">Critcl &amp; Accelerators</a></span></p>
<p>Tcllib's build system accepts it as an application found in the
PATH (be it starkit or starpack).</p>
<p>Tcllib requires version 2 or higher.</p>
<p>The github repository providing releases of version 2 and
higher, and the associated sources, can be found at
<a href="http://andreas-kupries.github.com/critcl">http://andreas-kupries.github.com/critcl</a>.</p>
<p>Any branch of the repository can be used (if not using the
................................................................................
install CriTcl, including a list of its dependencies.</p>
<p>Its instructions will not be repeated here. If there are
problems with their directions please file a ticket against the
<i class="term">Critcl</i> project, and not Tcllib.</p>
</div>
</div>
<div id="section3" class="doctools_section"><h2><a name="section3">Build &amp; Installation Instructions</a></h2>
<div id="subsection3" class="doctools_subsection"><h3><a name="subsection3">Unix</a></h3>
<p>This section describes the actions required to install Tcllib on Unix
systems (Linux, BSD, and related, including OS X).
If you have to install Tcllib on a Windows machine instead then see
section <span class="sectref"><a href="#subsection4">Windows</a></span>.</p>
<p>Tcllib comes with a standard TEA buildsystem using a
<b class="syscmd">configure</b> script and a &quot;<b class="file">Makefile</b>&quot; generated by it.</p>
<p>To install Tcllib simply run</p>
<pre class="doctools_example">
    ./configure
    make install
</pre>
<p>in the toplevel directory of Tcllib itself. To build in a directory D
outside of Tcllib's toplevel directory simply make D the current
working directory and invoke <b class="syscmd">configure</b> with either its
absolute path or a proper relative path.</p>
<p>The above will non-interactively install all packages,
applications found in Tcllib, and their manpages, in directories
derived from what <b class="syscmd">configure</b> found out about the system.</p>
<p>The underlying tool is &quot;<b class="file">installer.tcl</b>&quot; in the toplevel
directory of Tcllib.</p>
<p>Invoking this tool via</p>
<pre class="doctools_example">
    ./installer.tcl -help
</pre>
<p>will provide a short list of the available options. For more examples
see the various <i class="term">install</i> targets found in &quot;<b class="file">Makefile.in</b>&quot;.</p>
</div>
<div id="subsection4" class="doctools_subsection"><h3><a name="subsection4">Windows</a></h3>
<p>This section describes the actions required to install Tcllib on Windows(tm)
systems.
If you have to install Tcllib on a Unix machine (Linux, BSD, and
related, including OS X) instead then see section <span class="sectref"><a href="#subsection3">Unix</a></span>.</p>
<p>If the build environment is based on <i class="term">MSYS</i>,
<i class="term">cygwin</i>, or a similar emulation of a unix environment, then
<span class="sectref"><a href="#subsection3">Unix</a></span> still applies and should be used.</p>
<p>Alternatively, as mentioned in the previous section, the tool
underneath of the unix buildsystem is the <i class="term"><a href="../../../index.html#tcl">Tcl</a></i>-based
&quot;<b class="file">installer.tcl</b>&quot; script.</p>
<p>Invoking this tool from a DOS shell via</p>
<pre class="doctools_example">
    /path/to/tclsh ./installer.tcl -help
</pre>
<p>will provide a short list of the available options. For more examples
see the various <i class="term">install</i> targets found in &quot;<b class="file">Makefile.in</b>&quot;.
Invoking this tool without any arguments, i.e. like</p>
<pre class="doctools_example">
    /path/to/tclsh ./installer.tcl
</pre>
<p>will start a non-interactive installation showing its progress in a
Tk-based graphical interface. The directories to install the packages,
applications, etc. into are derived from the location of the
<b class="syscmd">tclsh</b> used to invoke the script, and where it expects
packages.</p>
</div>
<div id="subsection5" class="doctools_subsection"><h3><a name="subsection5">Critcl &amp; Accelerators</a></h3>
<p>A number of packages come with <i class="term">accelerators</i>, i.e.
<b class="syscmd">critcl</b>-based C code whose use will boost the performance of
the packages using them. As these accelerators are optional they are
not installed by default.</p>
<p>To build the accelerators the normally optional dependency on
<b class="syscmd">critcl</b> becomes required.</p>
<p>To install Tcllib with the accelerators run</p>










<pre class="doctools_example">
    ./configure
    make critcl # This builds the shared library holding the accelerators
    make install
</pre>
<p>The underlying tool is &quot;<b class="file">sak.tcl</b>&quot; in the toplevel directory
of Tcllib and the command <b class="cmd">make critcl</b> is just a wrapper around</p>
<pre class="doctools_example">
    ./sak.tcl critcl





</pre>
</div>
</div>
</div>






|
<
<







 







|







 







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>









>
>
>
>
>




111
112
113
114
115
116
117
118


119
120
121
122
123
124
125
...
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
...
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
<ul>
<li class="doctools_subsection"><a href="#subsection1">Tcl</a></li>
<li class="doctools_subsection"><a href="#subsection2">CriTcl</a></li>
</ul>
</li>
<li class="doctools_section"><a href="#section3">Build &amp; Installation Instructions</a>
<ul>
<li class="doctools_subsection"><a href="#subsection3">Critcl &amp; Accelerators</a></ul>


</li>
</ul>
</div>
<div id="section1" class="doctools_section"><h2><a name="section1">Description</a></h2>
<p>Welcome to Tcllib, the Tcl Standard Library. Note that Tcllib is not a
package itself. It is a collection of (semi-independent) <i class="term"><a href="../../../index.html#tcl">Tcl</a></i>
packages that provide utility functions useful to a large collection
................................................................................
please file a ticket against <i class="term"><a href="../../../index.html#tcl">Tcl</a></i>, or the vendor of your
distribution, and <em>not</em> <i class="term"><a href="../../../index.html#tcllib">Tcllib</a></i>.</p>
</div>
<div id="subsection2" class="doctools_subsection"><h3><a name="subsection2">CriTcl</a></h3>
<p>The <b class="syscmd">critcl</b> tool is an <em>optional</em> dependency.</p>
<p>It is only required when trying to build the C-based
<i class="term">accelerators</i> for a number of packages, as explained in
<span class="sectref"><a href="#subsection3">Critcl &amp; Accelerators</a></span></p>
<p>Tcllib's build system accepts it as an application found in the
PATH (be it starkit or starpack).</p>
<p>Tcllib requires version 2 or higher.</p>
<p>The github repository providing releases of version 2 and
higher, and the associated sources, can be found at
<a href="http://andreas-kupries.github.com/critcl">http://andreas-kupries.github.com/critcl</a>.</p>
<p>Any branch of the repository can be used (if not using the
................................................................................
install CriTcl, including a list of its dependencies.</p>
<p>Its instructions will not be repeated here. If there are
problems with their directions please file a ticket against the
<i class="term">Critcl</i> project, and not Tcllib.</p>
</div>
</div>
<div id="section3" class="doctools_section"><h2><a name="section3">Build &amp; Installation Instructions</a></h2>
<p>The Tcllib distribution, whether a checkout directly from the source
repository, or an official release, offers a single method for
installing it, based on Tcl itself.</p>
<p>This is based on the assumption that for Tcllib to be of use
Tcl has to be present, and therefore can be used in the implementation
of the install code.</p>
<p>The relevant tool is the &quot;<b class="file">installer.tcl</b>&quot; script found in
the toplevel directory of a checkout or release.</p>
<p>It can be used in a variety of ways:</p>
<ol class="doctools_enumerated">
<li><p>It is always possible to invoke the tool directly, either as</p>
<pre class="doctools_example">
    ./installer.tcl
</pre>
<p>or</p>
<pre class="doctools_example">
    /path/to/tclsh ./installer.tcl
</pre>
<p>The second form is required on Windows (without a Unix emulation),
except if the Tcl installation is configured to handle &quot;<b class="file">.tcl</b>&quot;
files on a double-click.</p></li>
<li><p>In a unix-type environment, i.e. Linux, BSD and related, including OS
X, and Windows using some kind of unix-emulation like <b class="syscmd">MSYS</b>,
<b class="syscmd">Cygwin</b>, etc.) it is also possible to use</p>
<pre class="doctools_example">
    ./configure
    make install
</pre>
<p>in the toplevel directory of Tcllib itself.</p>
<p>To build in a directory &quot;<b class="file">D</b>&quot; outside of Tcllib's toplevel
directory simply make &quot;<b class="file">D</b>&quot; the current working directory and
invoke <b class="syscmd">configure</b> with either its absolute path or a proper
relative path.</p>
<p>This will non-interactively install all packages, applications
found in Tcllib, and their manpages, in directories derived from what
<b class="syscmd">configure</b> found out about the system.</p></li>
</ol>
<p>The installer selects automatically either a gui based mode, or
a command line based mode. If the package <b class="package"><a href="../../../index.html#tk">Tk</a></b> is present and
can be loaded, then the GUI mode is entered, else the system falls
back to the command line.</p>
<p>Note that it is possible to specify options on the command line
even if the installer ultimatively selects GUI mode. In that case the
hardwired defaults and the options determine the data presented to the
user for editing.</p>
<p>Command line help can be asked for by using the option <b class="option">-help</b> when
invoking the installer, i.e.</p>
<pre class="doctools_example">
    ./installer.tcl -help
</pre>
<p>This will print a short list of the available options to the standard
output channel. For more examples see the various <i class="term">install</i>
targets found in &quot;<b class="file">Makefile.in</b>&quot;.</p>
<p>The installer will select a number of defaults for the
locations of packages, examples, and documentation, and also the
format of the documentation. The user can overide these defaults in
the GUI, or by specifying additional options.</p>
<p>The defaults depend on the platform detected (unix/windows) and
on the <b class="syscmd">tclsh</b> executable used to run the installer.</p>
<p><em>Attention</em> The installer will overwrite an existing
installation of a Tcllib with the same version without asking back
after the initial confirmation is given.
Further if the user chooses the same directory as chosen for/by
previous installations then these will be overwritten as well.</p>
<div id="subsection3" class="doctools_subsection"><h3><a name="subsection3">Critcl &amp; Accelerators</a></h3>
<p>A number of packages come with <i class="term">accelerators</i>, i.e.
<b class="syscmd">critcl</b>-based C code whose use will boost the performance of
the packages using them. As these accelerators are optional they are
not installed by default.</p>
<p>To build the accelerators the normally optional dependency on
<b class="syscmd">critcl</b> becomes required.</p>
<p>To install Tcllib with the accelerators in a unix-type
environment invoke:</p>
<pre class="doctools_example">
    ./configure
    make critcl # This builds the shared library holding the accelerators
    make install
</pre>
<p>The underlying tool is &quot;<b class="file">sak.tcl</b>&quot; in the toplevel directory
of Tcllib and the command <b class="cmd">make critcl</b> is just a wrapper around</p>
<pre class="doctools_example">
    ./sak.tcl critcl
</pre>
<p>Therefore in a Windows environment instead invoke</p>
<pre class="doctools_example">
    /path/to/tclsh ./sak.tcl critcl
    /path/to/tclsh ./installer.tcl
</pre>
</div>
</div>
</div>

Changes to idoc/man/files/devdoc/tcllib_installer.n.

371
372
373
374
375
376
377
378
379
380
381
382
383


384
385
386

387


























388
389
390
391
392
393
394

395

396

397
398
399

400
401
402
403
404
405
406











407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461

462
463
464
465
466
467
468
...
471
472
473
474
475
476
477
478









At the above url is also an explanation on how to build and
install CriTcl, including a list of its dependencies\&.
.PP
Its instructions will not be repeated here\&. If there are
problems with their directions please file a ticket against the
\fICritcl\fR project, and not Tcllib\&.
.SH "BUILD & INSTALLATION INSTRUCTIONS"
.SS UNIX
This section describes the actions required to install Tcllib on Unix
systems (Linux, BSD, and related, including OS X)\&.
If you have to install Tcllib on a Windows machine instead then see
section \fBWindows\fR\&.
.PP


Tcllib comes with a standard TEA buildsystem using a
\fBconfigure\fR script and a "\fIMakefile\fR" generated by it\&.
.PP

To install Tcllib simply run


























.CS


    \&./configure
    make install

.CE

in the toplevel directory of Tcllib itself\&. To build in a directory D

outside of Tcllib's toplevel directory simply make D the current

working directory and invoke \fBconfigure\fR with either its
absolute path or a proper relative path\&.
.PP

The above will non-interactively install all packages,
applications found in Tcllib, and their manpages, in directories
derived from what \fBconfigure\fR found out about the system\&.
.PP
The underlying tool is "\fIinstaller\&.tcl\fR" in the toplevel
directory of Tcllib\&.
.PP











Invoking this tool via
.CS


    \&./installer\&.tcl -help

.CE
will provide a short list of the available options\&. For more examples
see the various \fIinstall\fR targets found in "\fIMakefile\&.in\fR"\&.
.SS WINDOWS
This section describes the actions required to install Tcllib on Windows(tm)
systems\&.
If you have to install Tcllib on a Unix machine (Linux, BSD, and
related, including OS X) instead then see section \fBUnix\fR\&.
.PP
If the build environment is based on \fIMSYS\fR,
\fIcygwin\fR, or a similar emulation of a unix environment, then
\fBUnix\fR still applies and should be used\&.
.PP
Alternatively, as mentioned in the previous section, the tool
underneath of the unix buildsystem is the \fITcl\fR-based
"\fIinstaller\&.tcl\fR" script\&.
.PP
Invoking this tool from a DOS shell via
.CS


    /path/to/tclsh \&./installer\&.tcl -help

.CE
will provide a short list of the available options\&. For more examples
see the various \fIinstall\fR targets found in "\fIMakefile\&.in\fR"\&.
Invoking this tool without any arguments, i\&.e\&. like
.CS


    /path/to/tclsh \&./installer\&.tcl

.CE
will start a non-interactive installation showing its progress in a
Tk-based graphical interface\&. The directories to install the packages,
applications, etc\&. into are derived from the location of the
\fBtclsh\fR used to invoke the script, and where it expects
packages\&.
.SS "CRITCL & ACCELERATORS"
.PP
A number of packages come with \fIaccelerators\fR, i\&.e\&.
\fBcritcl\fR-based C code whose use will boost the performance of
the packages using them\&. As these accelerators are optional they are
not installed by default\&.
.PP
To build the accelerators the normally optional dependency on
\fBcritcl\fR becomes required\&.
.PP
To install Tcllib with the accelerators run

.CS


    \&./configure
    make critcl # This builds the shared library holding the accelerators
    make install

................................................................................
The underlying tool is "\fIsak\&.tcl\fR" in the toplevel directory
of Tcllib and the command \fBmake critcl\fR is just a wrapper around
.CS


    \&./sak\&.tcl critcl

.CE















|
|
|
<
<

>
>
|
<

>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







>
|
>
|
>
|
|
<
>
|
|
|

<
<

>
>
>
>
>
>
>
>
>
>
>
|






|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<










|
>







 







|
>
>
>
>
>
>
>
>
>
371
372
373
374
375
376
377
378
379
380


381
382
383
384

385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427

428
429
430
431
432


433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468




















469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
...
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
At the above url is also an explanation on how to build and
install CriTcl, including a list of its dependencies\&.
.PP
Its instructions will not be repeated here\&. If there are
problems with their directions please file a ticket against the
\fICritcl\fR project, and not Tcllib\&.
.SH "BUILD & INSTALLATION INSTRUCTIONS"
The Tcllib distribution, whether a checkout directly from the source
repository, or an official release, offers a single method for
installing it, based on Tcl itself\&.


.PP
This is based on the assumption that for Tcllib to be of use
Tcl has to be present, and therefore can be used in the implementation
of the install code\&.

.PP
The relevant tool is the "\fIinstaller\&.tcl\fR" script found in
the toplevel directory of a checkout or release\&.
.PP
It can be used in a variety of ways:
.IP [1]
It is always possible to invoke the tool directly, either as
.CS


    \&./installer\&.tcl

.CE
.IP
or
.CS


    /path/to/tclsh \&./installer\&.tcl

.CE
.IP
The second form is required on Windows (without a Unix emulation),
except if the Tcl installation is configured to handle "\fI\&.tcl\fR"
files on a double-click\&.
.IP [2]
In a unix-type environment, i\&.e\&. Linux, BSD and related, including OS
X, and Windows using some kind of unix-emulation like \fBMSYS\fR,
\fBCygwin\fR, etc\&.) it is also possible to use
.CS


    \&./configure
    make install

.CE
.IP
in the toplevel directory of Tcllib itself\&.
.sp
To build in a directory "\fID\fR" outside of Tcllib's toplevel
directory simply make "\fID\fR" the current working directory and
invoke \fBconfigure\fR with either its absolute path or a proper
relative path\&.

.sp
This will non-interactively install all packages, applications
found in Tcllib, and their manpages, in directories derived from what
\fBconfigure\fR found out about the system\&.
.PP


.PP
The installer selects automatically either a gui based mode, or
a command line based mode\&. If the package \fBTk\fR is present and
can be loaded, then the GUI mode is entered, else the system falls
back to the command line\&.
.PP
Note that it is possible to specify options on the command line
even if the installer ultimatively selects GUI mode\&. In that case the
hardwired defaults and the options determine the data presented to the
user for editing\&.
.PP
Command line help can be asked for by using the option \fB-help\fR when
invoking the installer, i\&.e\&.
.CS


    \&./installer\&.tcl -help

.CE
This will print a short list of the available options to the standard
output channel\&. For more examples see the various \fIinstall\fR
targets found in "\fIMakefile\&.in\fR"\&.
.PP
The installer will select a number of defaults for the
locations of packages, examples, and documentation, and also the
format of the documentation\&. The user can overide these defaults in
the GUI, or by specifying additional options\&.
.PP
The defaults depend on the platform detected (unix/windows) and
on the \fBtclsh\fR executable used to run the installer\&.
.PP
\fIAttention\fR The installer will overwrite an existing
installation of a Tcllib with the same version without asking back
after the initial confirmation is given\&.
Further if the user chooses the same directory as chosen for/by
previous installations then these will be overwritten as well\&.




















.SS "CRITCL & ACCELERATORS"
.PP
A number of packages come with \fIaccelerators\fR, i\&.e\&.
\fBcritcl\fR-based C code whose use will boost the performance of
the packages using them\&. As these accelerators are optional they are
not installed by default\&.
.PP
To build the accelerators the normally optional dependency on
\fBcritcl\fR becomes required\&.
.PP
To install Tcllib with the accelerators in a unix-type
environment invoke:
.CS


    \&./configure
    make critcl # This builds the shared library holding the accelerators
    make install

................................................................................
The underlying tool is "\fIsak\&.tcl\fR" in the toplevel directory
of Tcllib and the command \fBmake critcl\fR is just a wrapper around
.CS


    \&./sak\&.tcl critcl

.CE
.PP
Therefore in a Windows environment instead invoke
.CS


    /path/to/tclsh \&./sak\&.tcl critcl
    /path/to/tclsh \&./installer\&.tcl

.CE

Changes to idoc/www/tcllib/files/devdoc/tcllib_installer.html.

118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
...
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
...
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281










282
283
284
285
286
287
288
289
290





291
292
293
294
<ul>
<li class="doctools_subsection"><a href="#subsection1">Tcl</a></li>
<li class="doctools_subsection"><a href="#subsection2">CriTcl</a></li>
</ul>
</li>
<li class="doctools_section"><a href="#section3">Build &amp; Installation Instructions</a>
<ul>
<li class="doctools_subsection"><a href="#subsection3">Unix</a></li>
<li class="doctools_subsection"><a href="#subsection4">Windows</a></li>
<li class="doctools_subsection"><a href="#subsection5">Critcl &amp; Accelerators</a></ul>
</li>
</ul>
</div>
<div id="section1" class="doctools_section"><h2><a name="section1">Description</a></h2>
<p>Welcome to Tcllib, the Tcl Standard Library. Note that Tcllib is not a
package itself. It is a collection of (semi-independent) <i class="term"><a href="../../../index.html#tcl">Tcl</a></i>
packages that provide utility functions useful to a large collection
................................................................................
please file a ticket against <i class="term"><a href="../../../index.html#tcl">Tcl</a></i>, or the vendor of your
distribution, and <em>not</em> <i class="term"><a href="../../../index.html#tcllib">Tcllib</a></i>.</p>
</div>
<div id="subsection2" class="doctools_subsection"><h3><a name="subsection2">CriTcl</a></h3>
<p>The <b class="syscmd">critcl</b> tool is an <em>optional</em> dependency.</p>
<p>It is only required when trying to build the C-based
<i class="term">accelerators</i> for a number of packages, as explained in
<span class="sectref"><a href="#subsection5">Critcl &amp; Accelerators</a></span></p>
<p>Tcllib's build system accepts it as an application found in the
PATH (be it starkit or starpack).</p>
<p>Tcllib requires version 2 or higher.</p>
<p>The github repository providing releases of version 2 and
higher, and the associated sources, can be found at
<a href="http://andreas-kupries.github.com/critcl">http://andreas-kupries.github.com/critcl</a>.</p>
<p>Any branch of the repository can be used (if not using the
................................................................................
install CriTcl, including a list of its dependencies.</p>
<p>Its instructions will not be repeated here. If there are
problems with their directions please file a ticket against the
<i class="term">Critcl</i> project, and not Tcllib.</p>
</div>
</div>
<div id="section3" class="doctools_section"><h2><a name="section3">Build &amp; Installation Instructions</a></h2>
<div id="subsection3" class="doctools_subsection"><h3><a name="subsection3">Unix</a></h3>
<p>This section describes the actions required to install Tcllib on Unix
systems (Linux, BSD, and related, including OS X).
If you have to install Tcllib on a Windows machine instead then see
section <span class="sectref"><a href="#subsection4">Windows</a></span>.</p>
<p>Tcllib comes with a standard TEA buildsystem using a
<b class="syscmd">configure</b> script and a &quot;<b class="file">Makefile</b>&quot; generated by it.</p>
<p>To install Tcllib simply run</p>
<pre class="doctools_example">
    ./configure
    make install
</pre>
<p>in the toplevel directory of Tcllib itself. To build in a directory D
outside of Tcllib's toplevel directory simply make D the current
working directory and invoke <b class="syscmd">configure</b> with either its
absolute path or a proper relative path.</p>
<p>The above will non-interactively install all packages,
applications found in Tcllib, and their manpages, in directories
derived from what <b class="syscmd">configure</b> found out about the system.</p>
<p>The underlying tool is &quot;<b class="file">installer.tcl</b>&quot; in the toplevel
directory of Tcllib.</p>
<p>Invoking this tool via</p>
<pre class="doctools_example">
    ./installer.tcl -help
</pre>
<p>will provide a short list of the available options. For more examples
see the various <i class="term">install</i> targets found in &quot;<b class="file">Makefile.in</b>&quot;.</p>
</div>
<div id="subsection4" class="doctools_subsection"><h3><a name="subsection4">Windows</a></h3>
<p>This section describes the actions required to install Tcllib on Windows(tm)
systems.
If you have to install Tcllib on a Unix machine (Linux, BSD, and
related, including OS X) instead then see section <span class="sectref"><a href="#subsection3">Unix</a></span>.</p>
<p>If the build environment is based on <i class="term">MSYS</i>,
<i class="term">cygwin</i>, or a similar emulation of a unix environment, then
<span class="sectref"><a href="#subsection3">Unix</a></span> still applies and should be used.</p>
<p>Alternatively, as mentioned in the previous section, the tool
underneath of the unix buildsystem is the <i class="term"><a href="../../../index.html#tcl">Tcl</a></i>-based
&quot;<b class="file">installer.tcl</b>&quot; script.</p>
<p>Invoking this tool from a DOS shell via</p>
<pre class="doctools_example">
    /path/to/tclsh ./installer.tcl -help
</pre>
<p>will provide a short list of the available options. For more examples
see the various <i class="term">install</i> targets found in &quot;<b class="file">Makefile.in</b>&quot;.
Invoking this tool without any arguments, i.e. like</p>
<pre class="doctools_example">
    /path/to/tclsh ./installer.tcl
</pre>
<p>will start a non-interactive installation showing its progress in a
Tk-based graphical interface. The directories to install the packages,
applications, etc. into are derived from the location of the
<b class="syscmd">tclsh</b> used to invoke the script, and where it expects
packages.</p>
</div>
<div id="subsection5" class="doctools_subsection"><h3><a name="subsection5">Critcl &amp; Accelerators</a></h3>
<p>A number of packages come with <i class="term">accelerators</i>, i.e.
<b class="syscmd">critcl</b>-based C code whose use will boost the performance of
the packages using them. As these accelerators are optional they are
not installed by default.</p>
<p>To build the accelerators the normally optional dependency on
<b class="syscmd">critcl</b> becomes required.</p>
<p>To install Tcllib with the accelerators run</p>










<pre class="doctools_example">
    ./configure
    make critcl # This builds the shared library holding the accelerators
    make install
</pre>
<p>The underlying tool is &quot;<b class="file">sak.tcl</b>&quot; in the toplevel directory
of Tcllib and the command <b class="cmd">make critcl</b> is just a wrapper around</p>
<pre class="doctools_example">
    ./sak.tcl critcl





</pre>
</div>
</div>
</div></body></html>






|
<
<







 







|







 







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>









>
>
>
>
>




118
119
120
121
122
123
124
125


126
127
128
129
130
131
132
...
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
...
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
<ul>
<li class="doctools_subsection"><a href="#subsection1">Tcl</a></li>
<li class="doctools_subsection"><a href="#subsection2">CriTcl</a></li>
</ul>
</li>
<li class="doctools_section"><a href="#section3">Build &amp; Installation Instructions</a>
<ul>
<li class="doctools_subsection"><a href="#subsection3">Critcl &amp; Accelerators</a></ul>


</li>
</ul>
</div>
<div id="section1" class="doctools_section"><h2><a name="section1">Description</a></h2>
<p>Welcome to Tcllib, the Tcl Standard Library. Note that Tcllib is not a
package itself. It is a collection of (semi-independent) <i class="term"><a href="../../../index.html#tcl">Tcl</a></i>
packages that provide utility functions useful to a large collection
................................................................................
please file a ticket against <i class="term"><a href="../../../index.html#tcl">Tcl</a></i>, or the vendor of your
distribution, and <em>not</em> <i class="term"><a href="../../../index.html#tcllib">Tcllib</a></i>.</p>
</div>
<div id="subsection2" class="doctools_subsection"><h3><a name="subsection2">CriTcl</a></h3>
<p>The <b class="syscmd">critcl</b> tool is an <em>optional</em> dependency.</p>
<p>It is only required when trying to build the C-based
<i class="term">accelerators</i> for a number of packages, as explained in
<span class="sectref"><a href="#subsection3">Critcl &amp; Accelerators</a></span></p>
<p>Tcllib's build system accepts it as an application found in the
PATH (be it starkit or starpack).</p>
<p>Tcllib requires version 2 or higher.</p>
<p>The github repository providing releases of version 2 and
higher, and the associated sources, can be found at
<a href="http://andreas-kupries.github.com/critcl">http://andreas-kupries.github.com/critcl</a>.</p>
<p>Any branch of the repository can be used (if not using the
................................................................................
install CriTcl, including a list of its dependencies.</p>
<p>Its instructions will not be repeated here. If there are
problems with their directions please file a ticket against the
<i class="term">Critcl</i> project, and not Tcllib.</p>
</div>
</div>
<div id="section3" class="doctools_section"><h2><a name="section3">Build &amp; Installation Instructions</a></h2>
<p>The Tcllib distribution, whether a checkout directly from the source
repository, or an official release, offers a single method for
installing it, based on Tcl itself.</p>
<p>This is based on the assumption that for Tcllib to be of use
Tcl has to be present, and therefore can be used in the implementation
of the install code.</p>
<p>The relevant tool is the &quot;<b class="file">installer.tcl</b>&quot; script found in
the toplevel directory of a checkout or release.</p>
<p>It can be used in a variety of ways:</p>
<ol class="doctools_enumerated">
<li><p>It is always possible to invoke the tool directly, either as</p>
<pre class="doctools_example">
    ./installer.tcl
</pre>
<p>or</p>
<pre class="doctools_example">
    /path/to/tclsh ./installer.tcl
</pre>
<p>The second form is required on Windows (without a Unix emulation),
except if the Tcl installation is configured to handle &quot;<b class="file">.tcl</b>&quot;
files on a double-click.</p></li>
<li><p>In a unix-type environment, i.e. Linux, BSD and related, including OS
X, and Windows using some kind of unix-emulation like <b class="syscmd">MSYS</b>,
<b class="syscmd">Cygwin</b>, etc.) it is also possible to use</p>
<pre class="doctools_example">
    ./configure
    make install
</pre>
<p>in the toplevel directory of Tcllib itself.</p>
<p>To build in a directory &quot;<b class="file">D</b>&quot; outside of Tcllib's toplevel
directory simply make &quot;<b class="file">D</b>&quot; the current working directory and
invoke <b class="syscmd">configure</b> with either its absolute path or a proper
relative path.</p>
<p>This will non-interactively install all packages, applications
found in Tcllib, and their manpages, in directories derived from what
<b class="syscmd">configure</b> found out about the system.</p></li>
</ol>
<p>The installer selects automatically either a gui based mode, or
a command line based mode. If the package <b class="package"><a href="../../../index.html#tk">Tk</a></b> is present and
can be loaded, then the GUI mode is entered, else the system falls
back to the command line.</p>
<p>Note that it is possible to specify options on the command line
even if the installer ultimatively selects GUI mode. In that case the
hardwired defaults and the options determine the data presented to the
user for editing.</p>
<p>Command line help can be asked for by using the option <b class="option">-help</b> when
invoking the installer, i.e.</p>
<pre class="doctools_example">
    ./installer.tcl -help
</pre>
<p>This will print a short list of the available options to the standard
output channel. For more examples see the various <i class="term">install</i>
targets found in &quot;<b class="file">Makefile.in</b>&quot;.</p>
<p>The installer will select a number of defaults for the
locations of packages, examples, and documentation, and also the
format of the documentation. The user can overide these defaults in
the GUI, or by specifying additional options.</p>
<p>The defaults depend on the platform detected (unix/windows) and
on the <b class="syscmd">tclsh</b> executable used to run the installer.</p>
<p><em>Attention</em> The installer will overwrite an existing
installation of a Tcllib with the same version without asking back
after the initial confirmation is given.
Further if the user chooses the same directory as chosen for/by
previous installations then these will be overwritten as well.</p>
<div id="subsection3" class="doctools_subsection"><h3><a name="subsection3">Critcl &amp; Accelerators</a></h3>
<p>A number of packages come with <i class="term">accelerators</i>, i.e.
<b class="syscmd">critcl</b>-based C code whose use will boost the performance of
the packages using them. As these accelerators are optional they are
not installed by default.</p>
<p>To build the accelerators the normally optional dependency on
<b class="syscmd">critcl</b> becomes required.</p>
<p>To install Tcllib with the accelerators in a unix-type
environment invoke:</p>
<pre class="doctools_example">
    ./configure
    make critcl # This builds the shared library holding the accelerators
    make install
</pre>
<p>The underlying tool is &quot;<b class="file">sak.tcl</b>&quot; in the toplevel directory
of Tcllib and the command <b class="cmd">make critcl</b> is just a wrapper around</p>
<pre class="doctools_example">
    ./sak.tcl critcl
</pre>
<p>Therefore in a Windows environment instead invoke</p>
<pre class="doctools_example">
    /path/to/tclsh ./sak.tcl critcl
    /path/to/tclsh ./installer.tcl
</pre>
</div>
</div>
</div></body></html>