kbs means Tclkit Kitgen Build System
Package definitions
Originally it is a Tcl extension based on the TEA system. but you can use whatever you want.
A "Package" definition in the "kbs/kbs/defs.kbs" file and the sources of the package. The "kbs/kbs/defs.kbs" file will be sourced on startup. It contain the available package definitions. If you will add definitions from another file just source the file like:
catch {source [file join kbs z.kbs]};# project definitions
Some online help is available with:
./kbs.tcl kbs
Here are some parts with comments.
Package {name script}
The "Package" command is available in definition files. @arg name -- unique name of package @arg script -- contain definitions in the following order. For a detailed description look in the related commands. * Require * Source * Configure * Make * Install * Clean * Result
proc Require {args}
The given "Package"´s in args will be recursively called. @arg args - one or more "Package" names
proc Source {type args}
Procedure to build source tree of current "Package" definition. @arg pkg - name of package source dir under "-sourcedir" @arg type - describe action to get source tree of "Package" Available are: cvs path ... - call "cvs -d path ..." svn path - call "svn co path" fetch path - call "http get path", unpack *.tar.gz or *.tgz files tgz file - call "tar xzf file" link path - use sources from "path"
proc Configure {script}
If [Makedir] not exist create it and eval script. @arg script - tcl script to evaluate
proc Make {script}
Eval script in [Makedir]. @arg script - tcl script to evaluate
proc Install {script}
Eval script in [Makedir]. @arg script - tcl script to evaluate
proc Test {script}
Eval script in [Makedir]. @arg script - tcl script to evaluate
proc Clean {script}
Eval script in [Makedir]. @arg script - tcl script to evaluate
proc Result {args}
Copy all in args to "-resultdir". Remove old entries. @arg args - list with files/directories in [Builddir]
Here are some usefull helper procedures.
proc Srcdir {type}
Return fully qualified path to current "Package" source dir. The parent dir can be set on the command line with "-sourcedir". @par type: one of "tcl" used in tcl commands and "sys" used in system commands
proc Makedir {type}
Return fully qualified path to current "Package" make dir. Path is in dir [Builddir]. @par type: one of "tcl" used in tcl commands and "sys" used in system commands
proc Builddir {type}
Return path of current building dir. This dir contain all [Makedir] and is used in the "Install" target. The dir can be set on the command line with "-builddir". @par type: one of "tcl" used in tcl commands and "sys" used in system commands
proc Run {args}
The procedure call the args as external command with options. The procedure is available in all script arguments.
proc tclConfig {varname}
The procedure return the content of TCL* variables of the tclConfig.sh file. The variables are also available in the "_" array. The procedure is intended for use in the "Configure" target.
proc tclConfig {varname}
The procedure return the content of TK* variables of the tkConfig.sh file. The variables are also available in the "_" array. The procedure is intended for use in the "Configure" target.
Commenting the "kbs/kbs/defs.kbs" file
Package tcl { Require tcl-8.5 }
Package packages { file delete -force [Builddir tcl]/lib Require tcl-8.5 tk-8.5 bwidget-1.8.0 img-1.3 itcl-3.3 itk-3.3 iwidgets-4.0.2 }
Source cvs tcllib.cvs.sourceforge.net:/cvsroot/tcllib -r tklib-0-4-1 tklib Source cvs tclx.cvs.sourceforge.net:/cvsroot/tclx
Source fetch http://www.sqlite.org/sqlite-3_3_17-tea.tar.gz
Source link itcl-3.3
[Builddir tcl] -- used in tcl commands ("C:/") [Builddir sys] -- used in system commands e.g. make ("/c/")
[ Category Tclkit | Category Deployment Category Development ]