1. Create the package: in the case of a script-based package, it must contain an invocation of the "package provide" command, e.g.

package provide junk 1.0

In the case of a loadable binary it must have a call to "Tcl_PkgProvide", in the Tcl C library.


2. Create the index: by invoking the pkg_mkIndex command, e.g.

pkg_mkIndex /usr/users/pjx/junk *.tcl

This will scan the files matching the expression (in this case all files with extension "tcl") in the named directory, and create a file called pkgIndex.tcl which should contain the commands to load all the packages that it finds there.


3. Install the package: the package will consist of a directory with the file(s) making up that package, plus the pkgIndex.tcl file. There are a couple of options which will enable autoloading to work:


      Make it a subdirectory of one of the directories given in the tcl_pkgPath variable, or

      If you install it elsewhere on your system, then make sure you add the directory name to the auto_path global variable. (This can be either explicitly e.g. lappend auto_path $dir within the application itself, or via the TCLLIBPATH environment variable.)


4. Use the package: by adding a line like e.g.

package require junk

in your application. Providing everything has been set up as described, the Tcl interpreter will be able to locate and load the package automatically.