Provided by: critcl_3.1.17+dfsg-1_all bug

NAME

       critcl::util - CriTcl Utilities

SYNOPSIS

       package require Tcl  8.4

       package require critcl  ?2.1?

       package require critcl::util  ?1?

       ::critcl::util::checkfun name ?label?

       ::critcl::util::def path define ?value?

       ::critcl::util::undef path define

       ::critcl::util::locate label paths ?cmd?

_________________________________________________________________________________________________

DESCRIPTION

       Welcome  to the C Runtime In Tcl, CriTcl for short, a system to build C extension packages
       for Tcl on the fly, from C code embedded within Tcl scripts, for  all  who  wish  to  make
       their code go faster.

       This document is the reference manpage for the critcl::util package. This package provides
       convenience commands for advanced functionality built on top of the  core.   Its  intended
       audience are mainly developers wishing to write Tcl packages with embedded C code.

       This package resides in the Core Package Layer of CriTcl.

       +----------------+
       |Applications    |
       | critcl         |
       | critcl::app    |
       +----------------+

       *================*
       |Core Packages   |
       | critcl         |
       | critcl::util   |
       *================*

       +----------------+
       |Support Packages|
       | stubs::*       |
       | md5, platform  |
       |  ...           |
       +----------------+

API

       ::critcl::util::checkfun name ?label?
              This  command checks the build-time environment for the existence of the C function
              name.  It returns true on success, and false otherwise.

       ::critcl::util::def path define ?value?
              This command extends the specified configuration file path with a #define directive
              for the named define. If the value is not specified it will default to 1.

              The result of the command is an empty string.

              Note that the configuration file is maintained in the critcl::cache directory.

       ::critcl::util::undef path define
              This command extends the specified configuration file path with an #undef directive
              for the named define.

              The result of the command is an empty string.

              Note that the configuration file is maintained in the critcl::cache directory.

       ::critcl::util::locate label paths ?cmd?
              This command checks the build-time environment for the existence of a file in a set
              of possible paths.

              If  the  option  cmd  prefix is specified it will be called with the full path of a
              found file as its only argument to perform further checks.  A return value of false
              will reject the path and continue the search.

              The  return  value  of the command is the found path, as listed in paths. As a side
              effect the command will also print the found path, prefixed with the  label,  using
              critcl::msg.

              Failure to find the path is reported via critcl::error, and a possible empty string
              as the result, if critcl::error does not terminate execution.

              Relative paths are allowed as elements of paths, and are normalized relative to the
              directory containing the currently handled critcl file.

AUTHORS

       Andreas Kupries

BUGS, IDEAS, FEEDBACK

       This  document,  and  the  package  it  describes, will undoubtedly contain bugs and other
       problems.  Please report such at https://github.com/andreas-kupries/critcl.   Please  also
       report any ideas for enhancements you may have for either package and/or documentation.

KEYWORDS

       C code, Embedded C Code, code generator, compile & run, compiler, dynamic code generation,
       dynamic  compilation,  generate  package,  linker,  on  demand   compilation,   on-the-fly
       compilation

CATEGORY

       Glueing/Embedded C code

COPYRIGHT

       Copyright (c) 2011-2015 Andreas Kupries