Polish (Poland)English (United Kingdom)

What is tabs?

TABS (Tcl Automated Build System) is a tool for building cookfs, mk4 and zip archives. It is loosely based on idea of SDX (Starkit Developer eXtension) and Makefile-like approach. It is mainly used to create starkits, zipkits, starpacks and cookfs-based archives and binaries. Initially it was developed mainly for cookfs, however, all jobs now support all major archive formats used in Tcl world.

Latest version: 1.2.1 (released 2011-05-22) | download files


TABS documentation: wrap
Tcl/Tk - TABS

Job wrap is used to create a starkit, zipkit, cookfs archives and can be used to create tclkit or cookit based standalone applications.

The following table shows all options accepted by wrap job:

Option Default value Description
-binary Runtime to use for standalone binaries
-checkuptodatefalseWhether check if job is up to date should be done; otherwise job is always run
-copy List of files/directories to copy; specified as file/directory to copy or list specified as {source destination}
-driver VFS type to use - supports mk4, zip and cookfs
-driveroptions Additional options to pass to VFS driver; type dependant
-excludedirectoriesCVS .svnList of directories to exclude from including
-excludefilescoreList of filenames to exclude
-executionlevel Set execution level for binary for Windows Vista, Windows 7, if possible; only valid for win32 platform
-failtrueFail entire build if job fails
-fileinfo List of name-value for specifying resource information; only valid for win32 platform
-icons List of *.ico files to use for replacing icons in runtime; only valid for win32 platform
-output Output file
-packages List of packages to include; specific to cookfs/cookit building
-skiptags Currently unused
-starkitfalseCreate a starkit header for sourcing in Tcl


Where -fileinfo is one of: FileDescription, OriginalFilename, CompanyName, LegalCopyright, FileVersion, ProductName, ProductVersion or ProductVersionBinary.

 

Sample wrap job
tabs wrap -driver mk4 -output app.tcl -copy "app.vfs/*" -starkit 1

Building zip or cookfs based archive requires specifying appropriate -driver - for example -driver cookfs or -driver zip.

 

Copying from multiple directories or files can also be done easily:

 

Copying common.vfs, client.vfs and main.tcl
tabs wrap -driver mk4 -output app.tcl -copy "app.vfs/* client.vfs/* scripts/main.tcl" -starkit 1

 

 

Building a standalone binary on Windows can be done by adding -binary instead of -starkitt:

 

Creating standalone binary
tabs wrap -output app.exe -copy "app.vfs/*" -binary tclkit.exe

 

We can also change file resources and icons by adding -icons and -fileinfo:

 

Creating standalone binary with custom resources and icons
tabs wrap -output app.exe -copy "app.vfs/*" -binary tclkit.exe \
    -icons "icons/icon16.ico icons/icon32.ico icons/icon48.ico" \
    -fileinfo "ProductName {Sample App} ProductVersion 1.0"

 

 

Even though script is run from shell, -fileinfo takes a Tcl name-value pairs list.

 

 
Tcl 8.5 Network Programming book
Learning Nagios 3.0 book