You can download the sources of the version v1r8 of CMT or prebuilt binaries for some plateforms :
DEC-alpha (OSF1 V4.0 878 alpha - cxx) |
Linux-i686 (Linux 2.2.13 i686 - g++) |
i386_linux22 (Linux 2.2.13 i686 - g++) |
hp9000s735 (HP-UX B.10.20 A 9000/735 - aCC) |
hp9000s780 (HP-UX B.10.20 A 9000/780 - aCC) |
Sun (SunOS papou1 5.7 Generic sun4u sparc SUNW,Ultra-4) |
VisualC (NT4.0 - Visual C++) |
LynxOS-PowerPC (LynxOS 2.5.1 PowerPC - g++) |
It is now possible to specify set_append, set_prepend and set_remove similarly to the macro equivalents. One should be aware with this respect that appending and prepending strings to set definitions is done without any separator (as for macros but conversely to what happens for paths where a path separator is assumed). Therefore extensions to sets should explicitly include for instance space characters when required.
The default clean target is now triggering the set of <constituent>clean targets but in the reverse order of the specification order. This is to account for intermediate source file generation.
Therefore if the three constituents A, B and C are declared, requesting a gmake clean would launch Cclean, Bclean and Aclean in that order.
This new feature applies to groups through the <group>clean target.
The cmt config command now cleans up all previous makefile fragments, ie. files suffixed with .make or .nmake (possibly generated using other versions of CMT).
It is possible to produce tag-specific expanded versions of the setup scripts (taking the form <tag>.[c]sh) through the specialized make targets csh and sh. The resulting scripts only contain environment variable and alias assignments, and the calls to the setup scripts declared in the requirements.
The cmt show include_dirs command displays the current specification for include_dirs.
The cmt show pattern names command displays names of all patterns (needed for shell completion mechanisms).
The search path addition (to CMTPATH) induced by the current package is now the higher parent directory which is not itself a CMT package. Therefore if one works in a package A which is located within another package B in our current development area, then the path addition will consider the development area rather than the context of the B package.
This used to puzzle the -local option of the cmt broadcast command.
The new command cmt expand model "<model text>" provides a new generic facility for generating documents from a templated textual model. This facility introduces a (very primitive) support of XML syntax combined with the already existing and well known concepts or features of CMT that are:
The model to be expanded may be as simple as a normal text (possible containing CMT macros enclosed as usual between $(...), ${...} or %...%), in which case this text is simply echoed (after the proper macro expansion according to their current definition available through the cmt show macros command), eg;
> cmt expand model 'The current cppflags is $(cppflags)' The current cppflags is -KPIC -features=no%anachronisms -O3
But in addition to this trivial expansion mechanism, the text may also include XML-like constructs enclosed in <.../>. In this case, the construct is expected to take the following format:
<fragment-name variable=value variable=value .../>
and will be interpreted as follows:
Associated with this new facility, a new document type named generator, provides its default minimal support in Makefiles. When used in a requirements file it must be customized therough the two following parameters:
This implies that the responsibility of detecting a missing file (or a mistyped source file name) is assigned to the build procedure rather than to CMT.
The mechanism used to create such a shared library (on Windows) requires to define all exported symbols. Two scenarios are possible: