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 92 93 94
|
A last thing to consider when adding a new package to the collection
is installation.
[para] How to [emph use] the [file installer.tcl] script is documented
in [term {Tcllib - The Installer's Guide}].
[para] Here we document how to extend said installer so that it may
install new package(s) and/or application(s).
[para] In most cases only a single file has to be modified, the
[file support/installation/modules.tcl] holding one command per module
and application to install.
[para] The relevant commands are:
[list_begin definitions]
[call [cmd Module] [arg name] \
[arg code-action] \
[arg doc-action] \
[arg example-action]]
Install the packages of module [arg name], found in
[file modules/[arg name]].
[para] The [arg code-action] is responsible for installing the
packages and their index. The system currently provides
[list_begin definitions]
[def [cmd _tcl]] Copy all [file .tcl] files found in
[file modules/[arg name]] into the installation.
[def [cmd _tcr]] As [cmd _tcl], copy the [file .tcl] files found in
the subdirectories of [file modules/[arg name]] as well.
[def [cmd _tci]] As [cmd _tcl], and copy the [file tclIndex.tcl] file
as well.
[def [cmd _msg]] As [cmd _tcl], and copy the subdirectory [file msgs]
as well.
[def [cmd _doc]] As [cmd _tcl], and copy the subdirectory
[file mpformats] as well.
[def [cmd _tex]] As [cmd _tcl], and copy [file .tex] files as well.
[list_end]
[para] The [arg doc-action] is responsible for installing the package
documentation. The system currently provides
[list_begin definitions]
[def [cmd _null]] No documentation available, do nothing.
[def [cmd _man]] Process the [file .man] files found in
[file modules/[arg name]] and install the results (nroff and/or HTML)
in the proper location, as given to the installer.
[para] This is actually a fallback, normally the installer uses the
pre-made formatted documentation found under [file idoc].
[list_end]
[para] The [arg example-action] is responsible for installing the
examples. The system currently provides
[list_begin definitions]
[def [cmd _null]] No examples available, do nothing.
[def [cmd _exa]] Copy the the directory [file examples/[arg name]]
recursively to the install location for examples.
[list_end]
[call [cmd Application] [arg name]]
Install the application with [arg name], found in [file apps].
[call [cmd Exclude] [arg name]]
This command signals to the installer which of the listed modules to
[emph not] install. I.e. they name the deprecated modules of Tcllib.
[list_end]
[para] If, and only if the above actions are not suitable for the new
module then a second file has to be modified,
[file support/installation/actions.tcl].
[para] This file contains the implementations of the available
actions, and is the place where any custom action needed to handle the
special circumstances of module has to be added.
|