source: CMT/v1r25p20140131/doc/ReleaseNotes.html

Last change on this file was 671, checked in by rybkin, 10 years ago

merge -r 668:670 HEAD

  • Property svn:eol-style set to native
File size: 59.4 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2<html><head>
3<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
4<!--
5//-----------------------------------------------------------
6// Copyright Christian Arnault LAL-Orsay CNRS
7// arnault@lal.in2p3.fr
8// See the complete license in cmt_license.txt "http://www.cecill.info".
9//-----------------------------------------------------------
10--><title>Release notes</title>
11
12
13
14 
15   
16
17    <style type="text/css">
18li.bug
19{
20  color:#FF0000;
21}
22li.new
23{
24  color:#0000FF;
25  font-weight:bold;
26}
27li.int
28{
29  color:#00FF00;
30}
31<!--  font-style:italic; -->
32    </style></head><body alink="#007777" bgcolor="#ffffff" link="#550088">
33    <h1>Release notes</h1>
34
35    <blockquote>
36      <center><i>Notation</i></center>
37      <ul>
38        <li class="new">New features</li>
39        <li class="bug">Bug fixes</li>
40        <li class="int">Internal management</li>
41      </ul>
42    </blockquote>
43
44    <ul>
45
46
47 <li>
48        <b>v1r26p20140131, v1r25p20140131</b>
49        <ul>   
50
51    <li class="new">Implement enhanced cached requirements file generation, with "cmt setup -requirements" command, i.e., resolve sets for macros if possible, resolve paths fully if possible, so as to strip path of non-existent directories by default, explicitly controlled by options -(no)_strip_path
52</li>
53    <li class="new">Implement enhanced usage of cached requirements file by reading additional flags from requirements file, e.g., with "cmt run &lt;command&gt;"
54</li>
55    <li class="new">In "cmt show tags" command output, print uses in which apply_tag statement appears for tag
56</li>
57    <li class="new">Make -tag_remove=&lt;tag-list&gt; option functional on any tags (rather than only those specified on the command line or in CMTEXTRATAGS environment variable)
58</li>
59    <li class="new">For "cmt broadcast" command, implement enhanced handling of special CMTHOME, CMTUSERCONTEXT projects packages - visited if in current project only or with special depth values (0: CMTUSERCONTEXT project packages only, -1: CMTHOME project packages only)
60</li>
61    <li class="new">Make requirements file in special CMTHOME, CMTUSERCONTEXT projects non-mandatory
62</li>
63    <li class="new">Add support for devbranches directory - additional branches location - in Subversion repository
64</li>
65    <li class="new">Make -use=&lt;package&gt;:&lt;version&gt;:&lt;path&gt; option fully functional with standard use statement syntax, make -path=&lt;path&gt; option functional for relative &lt;path&gt; as with standard use statement syntax, e.g.,
66<pre>pattern find_pkg \
67  macro &lt;package&gt;_find_&lt;pkg&gt; "`cmt -q -use=&lt;pkg&gt;:&lt;ver&gt;:&lt;offset&gt; check configuration&&echo &lt;package&gt;_&lt;pkg&gt;_found||echo &lt;package&gt;_&lt;pkg&gt;_not_found`" ; \
68  apply_tag $(&lt;package&gt;_find_&lt;pkg&gt;)
69
70pattern use_pkg_if_found \
71  apply_pattern find_pkg pkg=&lt;pkg&gt; ver=&lt;ver&gt; offset=&lt;offset&gt; ; \
72  macro &lt;package&gt;_&lt;pkg&gt;_info "" &lt;package&gt;_&lt;pkg&gt;_found "&lt;pkg&gt; &lt;ver&gt; &lt;offset&gt;" ; \
73  use $(&lt;package&gt;_&lt;pkg&gt;_info)
74
75apply_pattern use_pkg_if_found pkg=MyExtraPatterns ver=*</pre>
76</li>
77
78    <li class="bug">Fully resolve set values in setup scripts for consistency
79</li>
80    <li class="bug">Make fixes/improvements to source files dependencies generator (reported by Joerg Stelzer)
81</li>
82    <li class="bug">Improve diagnostics messages for project file syntax errors
83</li>
84
85    <li class="int">Optimise and improve CMT shell setup and cleanup scripts
86</li>
87    <li class="int">Optimise and make cleaner initial configuration procedure
88</li>
89    <li class="int">General performance optimisation
90</li>
91    <li class="int">Optimise "cmt checkout" command performance (algorithm suggested by Wim Lavrijsen), introduce SVNDEBUG environment variable to facilitate debugging
92</li>
93    <li class="int">Work around Make errors if stamps files do not exist
94</li>
95
96        </ul>
97 </li>   
98
99 <li>
100        <b>v1r25p20130606</b>
101        <ul>   
102
103    <li class="new">Exclude aliases from the output of commands "cmt show set_names", "cmt show sets" (requested by David Quarrie)
104</li>
105    <li class="new">Allow for possibly multi-line output of commands in command substitution (introduced with backquotes, `COMMAND`)
106</li>
107    <li class="new">Detect clang compiler on Mac OS X platform
108</li>
109
110    <li class="bug">Parse includes acquired via include_dirs statement for imported uses
111</li>
112    <li class="bug">For applications belonging to "check" group, ensure that application is built before running check (reported by Andrei Kazarov and Andrei Salnikov)
113</li>
114    <li class="bug">Fix cleanup of libraries for Darwin platform
115</li>
116    <li class="bug">Ensure that *.in files are cleaned up in binary tag directory only (reported by Andrei Kazarov)
117</li>
118
119    <li class="int">Optimise makefile fragments so that implicit rule is not searched for
120</li>
121
122        </ul>
123 </li>   
124
125 <li>
126        <b>v1r26</b>
127        <ul>   
128
129    <li class="new">Compile dependent applications, libraries in parallel for build time optimisation
130</li>
131    <li class="new">For applications and libraries, introduce options -modules and -no_modules (default), to be used if they are built with files in languages with modules (like Fortran 90 and later). Necessary, in order to compile applications, libraries dependent upon application, library with -modules option after compiling latter
132</li>
133    <li class="new">Exclude aliases from the output of commands "cmt show set_names", "cmt show sets" (requested by David Quarrie)
134</li>
135    <li class="new">Allow for possibly multi-line output of commands in command substitution (introduced with backquotes, `COMMAND`)
136</li>
137    <li class="new">Detect clang compiler on Mac OS X platform
138</li>
139
140    <li class="bug">Parse includes acquired via include_dirs statement for imported uses
141</li>
142    <li class="bug">For applications belonging to "check" group, ensure that application is built before running check (reported by Andrei Kazarov and Andrei Salnikov)
143</li>
144    <li class="bug">Fix cleanup of libraries for Darwin platform
145</li>
146
147    <li class="int">Optimise makefile fragments so that implicit rule is not searched for
148</li>
149
150        </ul>
151 </li>   
152
153 <li>
154        <b>v1r25</b>
155        <ul>   
156
157    <li class="new">Implement commands "cmt show alias", "cmt show alias_names", "cmt show alias_value",        "cmt show aliases" (requested by David Quarrie)
158</li>
159    <li class="new">Implement enhanced mechanism of source files dependencies generation at
160compilation time making use of -MMD preprocessor option for C/C++ libraries/applications, to enable, tag c_native_dependencies/cpp_native_dependencies should be activated
161</li>
162
163    <li class="bug">In setup/cleanup scripts, unset set variables only to work around Z Shell unset builtin command being POSIX non-conformant (exit code of 1 on unset variables)
164</li>
165    <li class="bug">Fix/improve prototypes handling (reported by Andrei Kazarov and Franco Carbognani)
166</li>
167
168    <li class="int">Optimise internal source files dependencies generator, command "cmt build dependencies" (make more than 4 times faster)
169</li>
170    <li class="int">Optimise requirements files parsing (make ~ 2 times faster), optimise string manipulation functions
171</li>
172    <li class="int">Make use of system functions realpath (POSIX) and _fullpath (Windows)
173</li>
174    <li class="int">Introduce use member to hold canonicalized absolute realpath so as not to re-calculate it several times
175</li>
176    <li class="int">Optimise/improve paths handling
177</li>
178    <li class="int">Optimise CMT setup scripts by reducing the number of processes
179</li>
180    <li class="int">Improve error handling
181</li>
182
183        </ul>
184 </li>   
185
186 <li>
187        <b>v1r24</b>
188        <ul>   
189
190    <li class="new">Optimise and enhance "cmt build dependencies" command so that it makes use of files and include directories from CLI input, of input file dependencies[_CONSTITUENT].in, generate dependencies[_CONSTITUENT].in files
191</li>
192    <li class="new">Optimise and enhance "cmt build/remove library_links" commands so that they make use of input file library_links.in, generate library_links.in file
193</li>
194    <li class="new">Pass necessary for script $(make_shlib) macro values via environment, in cmt_make_shlib_common.sh script, take necessary macro values from environment, if available, rather than invoke CMT multiple times
195</li>
196    <li class="new">Introduce and implement BCAST mode (set CMTBCAST to non-empty string) to build all used packages of the current package with "(cmt) make". If run in the project container, builds the whole project. Using Make -j option (number of job slots, not available with NMake on Windows), this mode allows to parallelise independent packages builds and, depending on project structure and number of processors, may be significantly (several times) faster than "cmt broadcast make".
197</li>
198    <li class="new">By default, set MAKEFLAGS, if unset, to set number of job slots to number of processors, and enable CMT QUICK mode
199</li>
200    <li class="new">In QUICK mode, rebuild constituent(s) or broadcast (N)Makefile and corresponding macros files, if any requirements file changes only
201</li>
202    <li class="new">In QUICK mode, run "cmt build/remove library_links" commands with library_links input file, if any requirements file changes only
203</li>
204    <li class="new">In QUICK mode, files dependencies are always rebuilt, if a file or its dependency change
205</li>
206    <li class="new">Implement dynamic help messages on variables targets available for BCAST mode
207</li>
208    <li class="new">Add package selection criterion based on &lt;package&gt;_native_version (-native_version=VERSION option) in case of CMT structuring style without_version_directory (similarly to   style with_version_directory)
209</li>
210    <li class="new">Enhance/fix command completions for TCSH, ZSH, implement command completion for BASH
211</li>
212    <li class="new">Make "cmt check configuration" command exit with error, if non-constant cmtpath_pattern found for package outside CMTPATH - cannot be applied
213</li>
214    <li class="new">Do not keep .DEFAULT target in constituents Makefile, if PEDANTIC is defined
215</li>
216
217    <li class="bug">Ensure document source files dependencies get rebuilt whenever source file or its dependencies change
218</li>
219    <li class="bug">Make uninstall target (rather than clean target) dependent on remove_library_links target to ensure library links uninstallation
220</li>
221    <li class="bug">Implement error handling for "cmt create" command
222</li>
223    <li class="bug">Make "cmt build dependencies" command exit with error, if path specified for dependencies calculation is not found
224</li>
225    <li class="bug">In class CmtSystem functions, check return value of system functions and propagate it via return value, or via setting error, and/or by printing error message
226</li>
227    <li class="bug">Enhance error handling for input files generation, if fragment is not found
228</li>
229    <li class="bug">In (un)install_action.sh(.bat) scripts, exit with error on file command or reference file command error
230</li>
231    <li class="bug">Print help info on stdout (rather than stderr)
232</li>
233
234    <li class="int">In class cmt_regexp, introduce and implement clear function, use it in classes Use, Project
235</li>
236    <li class="int">In class CmtGenerator, remove prepare_use_context function, m_deps_builder member
237</li>
238    <li class="int">Do not assign target_&lt;name&gt; tag to document corresponding to action by default but only if this tag is used in tag or symbol expression
239</li>
240    <li class="int">For all constituents with -target_tag option, assign associated tag target_&lt;name&gt; only if this tag is used in tag or symbol expression
241</li>
242    <li class="int">Incorporate call to do_check_configuration into function do_build_constituents_config
243</li>
244    <li class="int">Print warning message if package requested for import cannot be imported for constituent without target tag during cmt build constituents_config, otherwise during cmt build constituent_config
245</li>
246    <li class="int">Make constituent name optional for "cmt build dependencies" command
247</li>
248    <li class="int">In (N)Makefile fragments, specify explicit empty command in (un)install, check target rules (for optimisation, to avoid implicit rule search)
249</li>
250    <li class="int">In class CmtError, introduce system_error code
251</li>
252    <li class="int">On Windows, use _unlink, _chmod, _putenv instead of deprecated - beginning in Visual C++ 2005 - POSIX names functions
253</li>
254        </ul>
255 </li>   
256
257 <li>
258        <b>v1r23</b>
259        <ul>   
260
261    <li class="new">Ensure that all sub-uses of packages imported with -import=&lt;package&gt; constituent option are also imported recursively if not imported yet and not specified with -no_auto_imports option
262</li>
263    <li class="new">Provide tag activation context in "cmt show tags" command output, if does not duplicate already printed information
264</li>
265    <li class="new">In "cmt check configuration" command, if current use is outside CMTPATH, issue warning or set error, provided [CMT]PEDANTIC environment variable is set
266</li>
267    <li class="new">Ensure head version (matching CMTHEADVERSION environment variable, or HEAD or head) satisfies any use request and takes precedence
268</li>
269    <li class="new">When generating setup/cleanup scripts, ensure sets, paths names are converted into valid shell variable names (issuing corresponding message if replacement happens)
270</li>
271    <li class="new">Rename cmt/version.cmt and issue warning if under version control and checked out with CMT structuring style with_version_directory
272</li>
273    <li class="new">Optimise fragment search, issue warning, if not found
274</li>
275    <li class="new">Improve error handling, diagnostic and help messages for some commands
276</li>
277    <li class="bug">Improve handling of -no_auto_imports option of use statement, ensure "cmt show uses" command shows where auto_imports state gets set
278</li>
279    <li class="bug">Improve handling of -f=&lt;file&gt; option
280</li>
281    <li class="bug">Make option -e=&lt;extra-statement(s)&gt; functional
282</li>
283    <li class="int">Reduce the number of reads of requirements files tree by generating input requirements file for constituent(s) without associated tag in one CMT invocation. Then from it, generate constituent Makefile
284</li>
285    <li class="int">When building CMT with GNU Make, allow for user overrides/extra flags via CXXFLAGS, LDFLAGS, TARGET_ARCH variables
286</li>
287    <li class="int">Reduce the number of pwd function invocations
288</li>
289        </ul>
290 </li>   
291
292 <li>
293        <b>v1r22</b>
294        <ul>   
295
296    <li class="new">Introduce option -requirements for command "cmt setup" to generate standalone requirements file from which generate setup script
297</li>
298    <li class="new">Introduce option -xml to produce output in XML format (with document type definition), currently for commands "cmt setup", "cmt show projects", "cmt show uses" (requested by Marco Clemencic)
299</li>
300    <li class="new">Ensure QUICK mode can be used for from scratch build (requested by RD Schaffer)
301</li>
302    <li class="new">Introduce command "cmt build        constituents_config" to generate constituents Makefile, tag specific Makefile, and setup definitions file, and "cmt build constituent_config" to generate constituent Makefile fragment, tag specific Makefile, and setup definitions file at the same time (rather than use 3 commands) for build time optimisation
303</li>
304    <li class="bug">Ensure CMTSTRUCTURINGSTYLE environment variable setting be functional with "cmt co" command
305</li>
306    <li class="bug">Enhance cleanup of setup temporary files
307</li>
308    <li class="bug">Make "cmt show tags" commands more informative, i.e. show list of packages which imply tags for particular tag (rather than last package from list)
309</li>
310    <li class="bug">When several alternative values are specified through several tag-value pairs, select the first matching condition (rather than based on conditions priorities)
311</li>
312    <li class="bug">For -no_static mode, generate &lt;library&gt;.stamp in addition to &lt;library&gt;.shstamp
313</li>
314    <li class="int">Projects (other than current project) coming from CMTPATH entries are not ignored in case current project does not have parents
315</li>   
316    <li class="int">Enhance error handling in NMakefiles
317</li>   
318    <li class="int">To generate setup/cleanup scripts for standalone package, use same functions as for standard packages
319</li>
320    <li class="int">In case of project requested with conflicting releases, issue warning, do not set CmtError
321</li>   
322    <li class="int">Add optional argument of type ostream for several functions
323</li>   
324    <li class="int">Do not use Makefile common_target to have one process fewer
325</li>   
326
327        </ul>
328 </li>   
329
330 <li>
331        <b>v1r21</b>
332        <ul>   
333    <li class="new">Introduce and implement "cmt show container [&lt;path&gt;]..." command. Apply tag container_package if current package is container package of project (requested by Marco Clemencic)
334</li>
335    <li class="new">Introduce new setup strategy with values scripts and no_scripts. Do not generate (or remove existing) cleanup and setup scripts if setup_strategy includes no_scripts (requested by David Rousseau and RD)
336</li>
337    <li class="new">Implement new options -C (for context), -i (for info) of "cmt co|checkout" command
338</li>
339    <li class="new">Make options -R (recursive checkout) and -requirements (checkout from requirements file) functional with Subversion
340</li>
341    <li class="new">Introduce the CMTHEADVERSION environment variable to hold the string that is written into the       version.cmt file on "cmt checkout" of the package's trunk when it is different from any existing tag. The value may contain the templates &lt;package&gt;, &lt;PACKAGE&gt;, &lt;revision&gt;, where &lt;revision&gt; is replaced with last_changed_rev of the trunk
342</li>
343    <li class="new">Introduce cmt_parallel_bins tag to enable locking mechanism which allows for simultaneous/parallel builds for multiple binary tags (not activated by default)
344</li>
345    <li class="new">Use command specified by macro "devenv_command" to retrieve version of Microsoft (R) Visual Studio and define a corresponding tag (vs&lt;digit(s)&gt;). Set macro devenv_command to "devenv /?" if VS (for Visual Studio) tag is activated (not activated by default)
346</li>
347    <li class="new">Use system dependent size PATH_MAX for path name arrays instead of 256 (requested by Francesco Prelz)
348</li>
349    <li class="new">Print warning in current package, when package applies an undefined pattern. When building constituents makefile, print a warning message if a package requested for import for a constituent cannot be imported (requested by Sebastien Binet)
350</li>
351    <li class="bug">Make behaviour wrt package versions matching consistent for both package structuring styles (with_version_directory and without_version_directory). In version specification, v* matches any version as well as *
352</li>
353    <li class="bug">Allow for doing setup with setup scripts generated by "cmt config" from any place (with a correct CMTPROJECTPATH), resolving ticket #57
354</li>
355    <li class="bug">Enhance/Improve error handling in general, diagnostic and help messages
356</li>
357    <li class="bug">Exit with an error on file (including stdout) write errors
358</li>
359    <li class="bug">Upon execution of setup.[c]sh, cleanup.[c]sh scripts, exit with a non-zero status on failure, taking into account failures of user provided setup, cleanup scripts
360</li>
361    <li class="bug">Improve projects ordering
362</li>
363    <li class="int">Optimise retrieval of Mac OS version
364</li>   
365    <li class="int">Introduce diagnostic function for CMTVERBOSE level
366</li>   
367    <li class="int">Do not use "no_version_style"
368</li>   
369
370        </ul>
371      </li>
372
373 <li>
374        <b>v1r20p20090520</b>
375        <ul>   
376    <li class="new">Implement the generation of dependencies Makefiles (one per source file) making use of the language compiler (preprocessor)
377<pre>
378The corresponding compiler options should be passed via the -dependencies_options=OPTIONS option of the language
379
380Define the cppdepflags, cdepflags macros that hold the compiler options to generate dependencies for Linux,
381Darwin, VisualC when the tags cpp_native_dependencies, c_native_dependencies are activated
382
383Pass cppdepflags, cdepflags to the c++, c languages as defined by CMT
384
385Introduce mgr/cmt_format_deps.sh(.bat) scripts to be used for the generation of one dependencies (N)Makefile
386per source file, define the format_dependencies macro via the introduced scripts
387
388NOTE: To use the feature, the tags cpp_native_dependencies, c_native_dependencies need to be activated
389(not activated by default)
390</pre></li>
391
392    <li class="new">Implement the generation of dependencies depending on the files
393modifications rather than every time NMake is run for Windows
394<pre>
395Same as for Unix-like systems
396</pre></li>
397
398    <li class="new">Complete the message of the "cmt make help" command
399</li>
400
401    <li class="new">If the Verbose level is activated (the CMTVERBOSE environment variable is set to a non-empty string), check whether the names of different packages in upper case coincide and issue a warning appropriately, print a warning message when an undefined pattern is referenced
402</li>
403
404    <li class="new">For Darwin, build statically linked (archive) libraries     with "libtool", the recommended way
405</li>
406
407    <li class="new">Add the possibility to do checkout of CMT packages from Subversion repository via the "cmt checkout" command
408<pre>
409The choice between CVS and Subversion is made based on which environment variable - CVSROOT or SVNROOT - is set
410
411For checkout from Subversion repository, the command specified via macro svn_checkout_command (set by CMT to
412mgr/cmt_svn_checkout.py, based on Subversion Python bindings) is used
413
414CVS checkout is done via the CVS command line client
415</pre></li>
416
417    <li class="bug">Ensure that the &lt;constituent&gt;_use_linkopts macro is set in case the
418constituent -import=&lt;package&gt; options effectively import nothing
419</li>   
420    <li class="bug">Ensure that the use_stamps macro is set taking into account the -no_auto_imports options
421</li>   
422
423    <li class="bug">Ensure that command "cmt show groups" is functional
424</li>   
425
426    <li class="bug">Use POSIX conformant syntax for shell utilities
427</li>   
428
429    <li class="bug">Ensure that dangling symbolic links can be uninstalled
430</li>   
431
432    <li class="bug">Ensure "cmt checkout" command exit status is set to a nonzero value on error
433</li>   
434
435    <li class="int">Optimise the retrieval of the Mac OS version
436</li>   
437
438    <li class="int">In the QUICK mode, generate $(cmt_local_tagfile) if non-existent
439</li>   
440
441    <li class="int">Ensure that uninstallation (make uninstall) be done in reverse build order (for Unix-like systems for now)
442</li>   
443
444    <li class="int">Remove the connection between clean and uninstall targets for Windows - same as for Unix-like systems
445</li>   
446
447    <li class="int">Add .make .stamp .cxx to the list of known suffixes and a rule with an empty command for $(use_requirements) for optimisation
448</li>   
449
450    <li class="int">Change the names of the files recording the setup to $(bin)setup.(n)make and $(bin)setup_${CONSTITUENT}.(n)make
451</li>   
452
453    <li class="int">Make the READONLY mode obsolete (the relocation     of the binary build directory provides this functionality as well)
454</li>   
455
456    </ul>
457</li>   
458
459 <li>
460        <b>v1r20p20081118</b>
461        <ul>   
462       
463    <li class="new">Implement the -no_static option for libraries
464    <pre>by default both static and shared library are built
465</pre></li>
466    <li class="new">Introduce diagnostic messages levels: Debug, Info, Warning, Error, Fatal
467<pre>Default value: Info, the level to use can be configured using the environment variables
468CMTDEBUG, CMTINFO, CMTWARNING, CMTERROR, CMTFATAL (in order of precedence) if set to a non-empty string
469and/or the existing command line options -warnings (Warning), -disable_warnings (Error), -quiet (Fatal)
470</pre></li>
471    <li class="new">Use diagnostic messages prefix consistently
472<pre>default value: #CMT---&gt;, can be configured using the environment variable CMTMSGPREFIX
473</pre></li>
474<li class="new">Retrieve the package version when structuring style used is `without_version_directory' from:
475<pre>
4761) cmt/version.cmt file if available (and readable)
4772) version statement in the package requirements file
478</pre></li>
479<li class="new">Allow for the relocation of the binary build directory
480<pre>
481via redefinition of the bin macro. E.g., macro bin "$(TMPDIR)/$(package)" in ${CMTUSERCONTEXT}/requirements, then
482$ cmt make
483</pre></li>
484<li class="new">Add the -rs suffix option to the cmt checkout command
485<pre>
486E.g.,
487$ cmt co packagename -rs -00-01-02
488same as
489$ cmt co packagename -r packagename-00-01-02
490(proposed by David Rousseau)
491</pre></li>
492    <li class="bug">Correct CMTPATH entries ordering and the application of cmtpath_pattern's in case of diamond project hierarchy</li>
493    <li class="bug">Correct the setting of macros in case the -import option of constituents is used so as to import what is requested only</li>
494    <li class="bug">Correct handling of the requirements file in ${CMTHOME} and/or ${CMTUSERCONTEXT} if specified and exist</li>
495    <li class="bug">Correct cmt broadcast in case of symlinks in the paths</li>
496    <li class="bug">Correct the handling of the -with_version_directory and -without_version_directory command line options with cmt checkout</li>
497    <li class="int">Introduce the CMTFLAGS environment variable (set up automatically) in order to contain command line options (currently, to configure the diagnostic messages level and the structuring style) so as to pass the flags to recursive cmt invocations. If CMTFLAGS exists in the environment, the flags from it are processed before the command line options</li>
498    <li class="int">Do not set macro ${CONSTITUENT}linkopts, use $(cmt_installarea_linkopts) with $(${CONSTITUENT}_use_linkopts) instead of $(use_linkopts) for applications</li>
499    <li class="int">Generate the BIN macro to hold an absolute path for the path specified by the bin macro</li>
500
501    </ul>
502</li>   
503
504 <li>
505        <b>v1r20p20080222</b>
506        <ul>   
507       
508    <li class="new">Control the verbosity of Make
509    <pre>by setting the following Make variables (in order of precedence):
510VERBOSE - print CMT messages and echo Make commands
511QUIET - print CMT messages (default)
512ECHO - echo Make commands
513SILENT - no CMT messages or Make commands echoing
514NOTE: In order to have user provided CMT documents (makefile fragments) controlled
515by these switches, the CMT document author
516- will not prefix command lines with @ (or prefix with macro $(silent))
517- will print messages (if any) starting a separate command line with macro $(echo)
518(see, e. g., mgr/fragments/tex)</pre></li>
519    <li class="new">Control the prefix of the CMT messages
520    <pre>via the Make variable CMTMSGPREFIX (default value: #CMT---&gt;)</pre></li>
521    <li class="bug">Correct the passing of (N)Make options for recursive (N)Make invocations</li>
522    <li class="new">Ensure CVS operations are retried in case of failure</li>
523    <li class="int">Optimise a number of internally used scripts by reducing the number of processes (used a patch from KELEMEN Peter)</li>
524    <li class="bug">Correct the handling of the -with_version_directory
525        and -without_version_directory command line options</li>
526    <li class="bug">Ensure the dependencies are re-calculated
527        whenever the included files are changed (the problem pointed out by Marco)</li>
528    <li class="bug">Improve the handling of symlinks in the paths</li>
529    <li class="new">Do not rebuild any *.make files when Make variable QUICK is defined
530    <pre>This may be used to save time when developing a package code without changing configuration or source files dependencies </pre></li>
531    <li class="int">Make use of the structuring style, when
532        configuring a package without a version.cmt file, to allow the use
533        of digits in package names of such packages structured without
534        a version directory. Improve diagnostic messages for this case</li>
535
536    <li class="new">Allow simultaneous/parallel builds for multiple binary tags
537    (used suggestions from Pere, Stefan, and Andrea):
538    <pre>- build all the makefiles in the binary tag directory
539- implement a locking mechanism
540The mechanism is in effect for CMT documents if
541macros lock_command, unlock_command are set to non-empty strings (default).
542Then, command ${lock_command} ${CONSTITUENT}${lock_suffix} is run by CMT to create the lock file in the package cmt directory
543before the document ${CONSTITUENT} is built,
544and command ${unlock_command} ${CONSTITUENT}${lock_suffix} is run by CMT to remove the lock file
545after the document ${CONSTITUENT} is built.
546The assumption is that while CMT applications, and libraries for different binary tags deal with different files,
547documents for different binary tags may deal with (e. g., build, install)
548the same files (e. g., header files). The locking mechanism is to ensure the documents are done one at a time</pre></li>
549    <li class="new">Implement an optional header file filter mechanism to replace
550        header files matching a pattern with a stamp file when calculating files dependencies
551    <pre>The mechanism is in effect if there is a package which
552- sets macro &lt;package&gt;_header_file_filter (to a regular expression)
553- sets macro &lt;package&gt;_header_file_stamp to a path of an existing file
554or file $(PACKAGE_ROOT)/cmt/cmt_header_file.stamp exists.
555Then, each header file whose path matches one of the regular expressions (if several packages activate the mechanism)
556is replaced with the corresponding stamp file in the dependency calculation and
557its dependencies are not examined. This may reduce the dependencies calculation time significantly.
558Example:
559macro Boost_header_file_filter $(Boost_home)/include/boost-$(Boost_file_version)
560macro Boost_header_file_stamp $(Boost_home)/include/boost-$(Boost_file_version)/boost/any.hpp
561The dependencies of the source files including Boost header files will only include the any.hpp file path.
562    </pre>
563    </li>
564
565    </ul>
566</li>   
567
568 <li>
569        <b>v1r20p20070720</b>
570        <ul>   
571       
572    <li class="bug">Fix the generation of source files dependencies</li>
573    <li class="bug">Fix the `cmt show version' command</li>   
574
575    </ul>
576</li>   
577
578 <li>
579        <b>v1r20p20070524</b>
580        <ul>   
581       
582        <li class="new">activate the support to PWD env. var.</li>     
583    <li class="bug">Send error &amp; warning messages to stderr instead of stdout.</li>
584    <li class="bug">Fix cvs interface.</li>   
585    <li class="int">Make use of the $(jar) macro</li>
586   
587
588    </ul>
589</li>   
590
591
592 <li>
593        <b>v1r20p20070208</b>
594        <ul>   
595       
596    <li class="bug">Disable the creation of <tt>&lt;project&gt;_ROOT/CONFIG</tt> 
597     variables for the PACKAGE_POLICY_FOR_<tt>&lt;project&gt;</tt> virtual package</li>
598    </ul>
599</li>   
600
601 <li>
602        <b>v1r20</b>
603        <ul>   
604    <li class="new">Add support for the -import=PkgA,PkgB,... syntax:
605    <pre>library Lalib   *.cpp -import=A,C</pre>
606    </li>
607
608   
609    <li class="new">Extend the project syntax to support macros/tags. E.g.:
610    <pre>        project Project
611
612        author garonne
613
614        use P1 v1.*
615
616        container container v1
617
618        # Policy definitions used by all packages belonging to this project
619        tag ATLAS
620
621        macro use_build_strategy "without_installarea" \
622                   ATLAS "with_installarea"
623
624        macro use_setup_strategy "no_root" \
625                       ATLAS "root"
626
627        macro use_structure_strategy "with_version_directory" \
628                       ATLAS "without_version_directory"
629                                             
630        build_strategy     $(use_build_strategy)
631        setup_strategy     $(use_setup_strategy)
632        structure_strategy $(use_structure_strategy)
633        ...</pre>
634    </li>       
635    <li class="new">Extend the strategy syntax for supporting variable, e.g.:
636    <pre>        macro use_strategy "without_installarea" \
637                   ATLAS "with_installarea"
638
639        build_strategy $(use_strategy)</pre>
640    </li>
641
642    <li class="new">Enable the package selection by native_version requirements:<pre>use foo -native_version=2.0</pre>
643    To activate this feature, it is necessary to execute the <tt>cmt config</tt> in all packages to
644    create for each eligible package a <tt>cmt/native_version.cmt</tt> file generated from the
645    <tt>&lt;package&gt;_native_version macro</tt> and used for the package selection.   
646    </li>
647   
648               
649        <li class="new">
650         Add macros $(${GROUP}_pre_constituents),  $(${GROUP}_post_constituents) for
651         ordering targets executed by default during make execution.
652    </li>
653
654        <li class="bug">Correct problems with the cxx pre-compiler parser for dealing with continuation
655        character, space, etc. This problem created in some case the missing dependencies problem with
656        previous releases (Thanks to Scott Snyder,
657        see <a href="http://savannah.cern.ch/bugs/?23384">bug report</a>).
658    </li> 
659   
660    <li class="bug">Fix bugs with <tt>-no_auto_imports</tt>.</li>
661   
662    <li class="bug">Return status code when executing make by the <tt>"cmt make"</tt> action
663    name.</li>
664     
665        <li class="bug">Correct the fact that a <tt>"apply_tag"</tt> protected by a private section is exported in
666        all the client packages.</li>
667
668
669        </ul>
670 </li>
671
672
673
674 <li>
675        <b>v1r19</b>
676        <ul>   
677    <li class="new">Add support for wildcarded project dependencies which Allow CMTPROJECTPATH overrides, e.g.: use project v*.</li>
678    <li class="new">Support for the author keyword at the project level and the corresponding command is <tt>cmt show project_author</tt>
679    to obtain it from command line.</li>
680    <li class="new">Extend the strategy syntax for supporting variable, e.g.:
681    <pre>        macro use_strategy "without_installarea" \
682                   ATLAS "with_installarea"
683
684        build_strategy $(use_strategy)
685    </pre>
686    </li>
687    <li class="new">Add a option to bypass the <tt>cmt config</tt> step after the cvs checkout: <tt>cmt co -no_config ...</tt>.</li>
688        <li class="new">Add a new traversal mode for the cmtpath_pattern: <tt>cmtpath_pattern_revert</tt>. This is for constructing macro from current
689        project to projects used (Atlas's request).</li>       
690        <li class="bug">Disable warning about tags,e.g. CMTSITE. To re-enable them you should use cmt with the <tt>-warnings</tt> option.</li> 
691        <li class="int">Introduce the pre-compiler __APPLE__ macro for removing compilation warnings.</li>
692 
693        </ul>
694 </li>
695 
696<li>
697        <b>v1r18p20061003</b>
698        <ul>
699        <li class="bug">Correct problem with long word during compilation which reach make limit(Atlas's request).</li>
700        </ul>
701 </li>
702       
703 <li>
704        <b>v1r18p20060606</b>
705        <ul>
706
707          <!--
708          <li class="new"></li>
709          <li class="bug"></li>
710          <li class="int"></li>
711          -->
712
713          <li class="new">
714          Add a touch functionnality, e.g. <tt>cvs co -t package</tt>,
715during cvs checkout, this is mainly due that cvs keeps the file
716timestamps so that build tools, i.d. make, can not recognize it as
717"new". The "best" default behaviour is for it to set the filestamp to
718the checkout time.</li>
719
720      <li class="new"> Add the support
721on Linux/make for creating separate directory for
722libraries/constituents. To be Atlas compliant, this strategy is not
723built by default you should called explicitely the STRUCTURED_OUTPUT
724option, e.g. <tt>make STRUCTURED_OUTPUT=1</tt>. For more informations see the following <a href="http://trac.lal.in2p3.fr/CMT/ticket/10">Bug
725      report</a>.</li>
726
727          <li class="new"> Supress the n repeated entries in the CMTPATH after the first found occurence.</li>
728
729          <li class="int"> Add the cvs <tt>"-f"</tt> option which force cvs to ignore the user .cvsrc file during cvs
730          command execution. It appears to create problem with the cmtcvs plugin and empty directories
731          within cvs.</li>
732
733      <li class="int">Translate symlinks for the <tt>cmt show packages</tt> command.</li><li>
734
735          </li><li class="bug"> Bring a better support for the cmt checkout operation to bypass cvs weird behaviours, e.g. chekout
736          localy a directory whithout any files inside creates nothing.</li>
737
738      <li class="bug"> Correct problems when checkouting successively the same package with a different tag in the
739       <tt>without version directory</tt>mode.</li>
740
741      <li class="bug">Compute the project of the package when expanding the <project> template to fix packages with offset .</project></li>
742                         
743        </ul>
744
745 </li>
746
747      <li>
748        <b>v1r18p20051101</b>
749
750        <ul>
751
752          <!--
753          <li class="new"></li>
754          <li class="bug"></li>
755          <li class="int"></li>
756          -->
757
758          <li class="new">Add a new standard macro definition
759          <tt>$(q)</tt> to hold a double quote. This is useful to
760          define symbol values that contin doublequotes so as they are
761          not filtered out by CMT. Typical usage is to cope with paths
762          containing spaces on Windows. Various fixes have been done
763          to improve the support of spaces in paths</li>
764
765          <li class="new">The <tt>pacman</tt> source file for CMT now
766          includes a constraint on the version of Pacman.</li>
767
768          <li class="bug">Added a mechanism to filter out bad items in
769          a PATH symbol. This was causing troubles at <tt>source
770          setup</tt> time</li>
771
772          <li class="bug">Added a protection against old protocols in
773          the CVS pluggin</li>
774
775          <li class="bug">Better support of release-less projects on
776          Windows</li>
777
778          <li class="bug">Added a protection against single level
779          directories in CMTPATH</li>
780
781          <li class="bug">Added a protection against unexisting
782          makefile fragments when running the <tt>clean</tt> target.</li>
783
784          <li class="bug">The definition of standard macros was not
785          properly set when using the <tt>cmt broadcast</tt>
786          command. Thus environment variables where badly preset.</li>
787
788          <li class="int">Improve the automatic preparation of CMT releases</li>
789
790          <li class="int">The internal <tt>Makefile</tt> structure has
791          been cleaned up to remove obsolete internal targets (leading
792          to confusing behavours in some cases)</li>
793
794        </ul>
795
796      </li>
797
798      <li>
799        <b>v1r18p20050901</b>
800
801        <ul>
802
803          <!--
804          <li class="new"></li>
805          <li class="bug"></li>
806          <li class="int"></li>
807          -->
808
809          <li class="new">Package creation (either from the <tt>cmt
810          create</tt> or the <tt>cmt co</tt> commands is affected by
811          the specification of the structuring style or of the
812          structuring strategy.</li>
813
814          <li class="new">Introduce a new strategy structure_strategy
815          with only one value with/out_version_directory. This is
816          mostly useful when installed in a project file to condition
817          the behaviour of package creation afterwards</li>
818
819          <li class="new">Support dependency building using external
820          tools such as cpp -M. Fix the cmt_build_des.sh wrapper
821          script to properly format the command output.</li>
822
823          <li class="new">Perform the cmt checkout onto a project even
824          if the basic directory structure of the project is already
825          in place.</li>
826
827          <li class="new">When no current project is defined the
828          strategies are taken from the top project (eg obtained from
829          the CMTPATH)</li>
830
831          <li class="new">The include_dirs statement can now be hidden
832          in a private section.</li>
833
834          <li class="new">The include_dirs statement now accepts a
835          macro reference as its value</li>
836
837
838
839          <li class="bug">Fix incorrect generation of XXXROOT and
840          XXXCONFIG environment variables according to strategies</li>
841
842          <li class="bug">Protect against missing un/install targets</li>
843
844          <li class="bug">Fix a typo in cmt_uninstall_action.bat
845          resulting in bad management of make cleanup on Windows</li>
846
847          <li class="bug">When creating a parent-less project, link it
848          to exisiting top project(s) and upgrade strategies
849          accordingly. Avoid confusions when mixing explicit CMTPATH,
850          CMTPROJECTPATH and project files </li>
851
852          <li class="bug">Don't apply include_dirs when their expanded
853          value is empty (avoid killing -I"")</li>
854
855          <li class="bug">Reset CMTPATH to empty when filling in
856          CMTPATH from projects (avoid confusions and
857          dupplications)</li>
858
859          <li class="bug">Fix a bug in dependency builder that missed
860          some statements after a single line C++ comment</li>
861
862          <li class="bug">Cleanup unneeded duplicate path
863          separators</li>
864
865          <li class="bug">Fix a bug in standard macro generation for
866          projects</li>
867
868        </ul>
869
870      </li>
871
872      <li>
873        <b>v1r18p20050501</b>
874
875        <ul>
876
877          <!--
878          <li class="new"></li>
879          <li class="bug"></li>
880          <li class="int"></li>
881          -->
882
883          <li class="new">Fill in a pacman cache for CMT using pacman3
884          syntax. The Pacman package name is CMT.</li>
885
886          <li class="new">Extend the recursive checkout mechanism to
887          projects. The recursivity covers the use relationships
888          between projects and propagates to packges of a project when
889          the container package is specified in the project file.</li>
890
891          <li class="new">Add the cvssubprojects query command to
892          retrieve subprojects at a CVS repository level</li>
893
894          <li class="new">Add a container statement in project
895          file. The syntax is like use statements. It indicates that a
896          container-like package exists in the project. This is useful
897          for recursive checkout operations.</li>
898
899          <li class="int">Migrate to a new version of the CVS
900          pluggin. Now the protocol level is explicitly referenced
901          when sending CVS requests via the pluggin. The new protocol
902          gives the nature of the CVS module: is it a project or a
903          package. The protocol level is specified in a dedicated
904          macro in the CMT requirements file.</li>
905
906          <li class="bug">Fix the production of shared libraries on CYGWIN</li>
907
908          <li class="bug">Fix ambiguities between physical paths and
909          logical paths in PATH variables management</li>
910
911          <li class="bug">Fix arg counting bugs in cvstags and cvssubpackages commands</li>
912
913        </ul>
914
915      </li>
916
917      <li>
918        <b>v1r18p20050401</b>
919
920        <ul>
921
922          <!--
923          <li class="new"></li>
924          <li class="bug"></li>
925          <li class="int"></li>
926          -->
927
928          <li class="new">Introduce a new bug reporting system: Trac</li>
929
930          <li class="new">Accept HEAD or head as a valid version tag for packages</li>
931
932          <li class="new">The path of CMT is removed from
933          CMTPATH. Packages aside CMT are no longer reachable by
934          default</li>
935
936          <li class="new">Major restructuring of the project
937          management and package localisation. The most important
938          parameter becomes the search path CMTPROJECTPATH for
939          projects. Then CMTPATH is deduced from the effective list of
940          used projects. Project files and the dependency graph
941          described by the project use statement becomes a central
942          mechanism.</li>
943
944          <li class="new">Introduce the management of releases for
945          projects. Release must exactly match</li>
946
947          <li class="new">Install a mechanism to detect unused tags
948          from arguments or CMTSITE. This is performed during the
949          setup generation</li>
950
951          <li class="int">Source code management tansfered to SVN</li>
952
953          <li class="int">Restructure the strategy management to make
954          it fully generic.</li>
955
956          <li class="bug">Fix poor management of unknown commands </li>
957
958          <li class="bug">Suppress the export action for alias in setup.sh</li>
959
960          <li class="bug">Fix a problem in TMPDIR management with
961          multi directory level</li>
962
963          <li class="bug">Fix a problem in cmt show packages</li>
964
965          <li class="bug">Fix bad parsing of various cmt commands</li>
966
967          <li class="bug">Fix an internal bug causing misfunction in
968          the -import parameter of constituents.</li>
969
970          <li class="bug">Fix fragment for action to improve argument transmission</li>
971
972          <li class="bug">Fix pdb files for Visual about debug mode</li>
973
974        </ul>
975
976      </li>
977
978      <li>
979        <b>v1r18p20041201</b>
980
981        <ul>
982
983          <!--
984          <li class="new"></li>
985          <li class="bug"></li>
986          <li class="int"></li>
987          -->
988
989          <li class="int">Suppress the completely unused makefile strategy</li>
990
991          <li class="bug">Really apply the project specific setup
992          strategy to control the generation of ROOT or CONFIG
993          env. variables.</li>
994
995          <li class="new">Change default build strategy to <tt>without_installarea</tt></li>
996
997          <li class="new">${CMTROOT} is no longer an automatic part of
998          the CMTPATH. Nor the current package automatically defines
999          an entry in the CMTPATH search list. However a feature
1000          partly compensates this evolution: the current project
1001          (i.e. the current package area, where the developer stands)
1002          is autmatically detected when its project file exists
1003          (i.e. when its cmt/project.cmt file exists). For instance,
1004          this suppresses the need to set CMTPATH when working in one
1005          single project.</li>
1006
1007          <li class="new">The general cmt command parsing mechanism
1008          has been revisited and now "actions" are considered as
1009          extended cmt commands and no longer need the "cmt do
1010          &lt;action&gt;" syntax. One can directly use "cmt
1011          &lt;action&gt;" when the action does not conflict with
1012          internal cmt commands.</li>
1013
1014          <li class="new">Command line arguments are transmitted to
1015          "actions" now through the new standard "cmt_args" macro</li>
1016
1017          <li class="bug">Really force the settings of all
1018          Env. variables before running internal cmmands through
1019          broadcast, run or do commands.</li>
1020
1021          <li class="new">The "cmt run" command transmits all its
1022          arguments to the launched action</li>
1023
1024          <li class="new">Revisit the production of dependency files,
1025          to consider the changes made to the configuration in general
1026          in addition to the usual source changes. This consists in
1027          generating one stamp file per source, touched when its
1028          contents change rather than when recomputing the
1029          dependencies.</li>
1030
1031          <li class="bug">Better protections for CMTPATH entries</li>
1032
1033          <li class="int">Major internal restructuring of the CMT
1034          package. Internal sources are now in ../source, ../src only
1035          contains publicly exported configuration files, fragments
1036          are in ../mgr/fragments. This is for constructing a really
1037          autonomous binary kit for CMT (eg for Fink) (without needing
1038          to export two kits)</li>
1039
1040          <li class="bug">Now produce the last revision date of the
1041          CMT documentation. Insert the complete version tag rather
1042          than just the base version tag.</li>
1043
1044          <li class="new">Suppress the systematic production of
1045          bundles on Darwin machines. This must now be done
1046          explicitly.</li>
1047
1048          <li class="bug">The algorithm for commpressing paths with
1049          ../ patterns now takes into account the presence of ${xxx}
1050          expressions that cannot be reduced. It also better handle
1051          various patterns that used to produce failures.</li>
1052
1053          <li class="bug">A global checking of the configuration is
1054          performed first when running Make</li>
1055
1056          <li class="new">Incompatible major ids in the version
1057          numbers are now managed like the minor id, ie. the decision
1058          is taken in a similar way. The usual error message is
1059          displayed but this is no longer fatal, and a decision is
1060          taken</li>
1061
1062        </ul>
1063
1064      </li>
1065
1066      <li>
1067        <b>v1r16p20040901</b>
1068
1069        <ul>
1070
1071          <!--
1072          <li class="new"></li>
1073          <li class="bug"></li>
1074          <li class="int"></li>
1075          -->
1076
1077          <li class="new">Introduce the support of SLC3 (Scientific
1078          Linux) platforms</li>
1079
1080          <li class="new">Trigger the reconstruction of the dependency
1081          makefile fragment from a change in the
1082          &lt;package&gt;_setup.make, ie from any change in tags, uses
1083          or CMTPATHs</li>
1084
1085          <li class="new"><tt>CMTBIN</tt> now follows a new convention
1086          on Unix `uname`-`uname -m` to differentiate among Linux
1087          platforms.</li>
1088
1089          <li class="new">Introduce a new -strict option to the cmt
1090          expand model to support model files freely formatted. This
1091          implied securing the user defined model elements by the
1092          <tt>cmts</tt> or <tt>cmtv</tt> name space
1093          keywords. <tt>cmts:xxx</tt> indicates a scalar modelling
1094          element <tt>xxx</tt> meant to be expanded only
1095          once. <tt>cmtv:yyy</tt> indicates a vector modelling element
1096          <tt>yyy</tt> meant to be expanded once per item in the
1097          vector of values.</li>
1098
1099          <li class="new">Better management of temporary file
1100          generation. Now support the standard TMPDIR environment
1101          variable to redirect temporary locations.</li>
1102
1103          <li class="int">Apply the new GPL-like licence officially
1104          provided by CNRS-CEA-INRIA</li>
1105
1106          <li class="int">Use stderr instead of stdout to display
1107          error and warning messages. Mainly to better expose messages in
1108          the source setup operations</li>
1109
1110          <li class="bug">Protect against source files not found (avoid infinite loops in make)</li>
1111
1112          <li class="bug">Better management of the build strategy on
1113          installation area to generate various automatic macros or
1114          sets (installarea_linkopts, PATH, LD_LIBRARY_PATH,
1115          etc...)</li>
1116
1117          <li class="bug">Revisit the package scan algorithm to
1118          improve the detection of directory structure of packages as
1119          well as their version tags.</li>
1120
1121          <li class="bug">Compress the path definitions (ie compress
1122          the ../xxx patterns) and use the compressed paths
1123          everywhere</li>
1124
1125        </ul>
1126
1127      </li>
1128
1129      <li>
1130        <b>v1r16p20040701</b>
1131
1132        <ul>
1133
1134          <!--
1135          <li class="new"></li>
1136          <li class="bug"></li>
1137          <li class="int"></li>
1138          -->
1139
1140          <li class="bug">Better generation of .def files for DATA</li>
1141
1142          <li class="bug">fix a bug that impacted on the order of
1143          compatible use requests with different wilcarded specifications</li>
1144
1145        </ul>
1146
1147      </li>
1148
1149      <li>
1150        <b>v1r16p20040527</b>
1151
1152        <ul>
1153
1154          <!--
1155          <li class="new"></li>
1156          <li class="bug"></li>
1157          <li class="int"></li>
1158          -->
1159
1160          <li class="new">Generate the <tt>target_${CONSTITUENT}</tt>
1161          tag to trigger configuration control per target. This
1162          feature is only activated when the new <tt>-target_tag</tt>
1163          option is specified to a constituent. Specific tag makefiles
1164          are then generated for those targets. This tag is activated
1165          either when <tt>make &lt;target&gt;</tt> or <tt>cmt do
1166          &lt;action&gt;</tt> is run.</li>
1167
1168          <li class="new">Add a section on package semantics in the documentation</li>
1169
1170          <li class="new">The <tt>apply_tag</tt> keyword now accepts macro expansion for its argument.</li>
1171
1172          <li class="new">Add the support for Enterprise Linux</li>
1173
1174          <li class="new">Create automatic tags from
1175          <tt>cmt_hardware</tt> <tt>cmt_system_version</tt> and
1176          <tt>cmt_compiler_version</tt></li>
1177
1178          <li class="new">Add a filtering script to keep 3 digits instead of 2</li>
1179
1180          <li class="int">Start the implementation of a centralized log message facility</li>
1181
1182          <li class="int">Implement a <tt>READONLY</tt> mode to
1183          Makefiles to generate all intermediate files in
1184          <tt>/tmp/CMT_*</tt> rather than in <tt>../cmt</tt></li>
1185
1186          <li class="int">Associate a dedicated project with CMTHOME and CMTUSERCONTEXT to manage strategies</li>
1187
1188          <li class="bug">Set the macro <tt>shlibsuffix</tt> for Win32</li>
1189          <li class="bug">Use /bin/pwd instead of the raw pwd in various CMT scripts for Unix</li>
1190          <li class="bug">Fix misunderstanding of of version specification of the form v1r2p (ie without a trailing number)</li>
1191          <li class="bug">Explicitly close the scope sections at the end of requirements files</li>
1192
1193        </ul>
1194
1195      </li>
1196
1197      <li>
1198        <b>v1r16</b>
1199
1200        <ul>
1201
1202          <!--
1203          <li class="new"></li>
1204          <li class="bug"></li>
1205          <li class="int"></li>
1206          -->
1207
1208          <li class="new">Offer an [x]emacs mode for editing requirements files</li>
1209
1210          <li class="new">Permit macro expressions in the <tt>tag</tt> statement</li>
1211
1212          <li class="new">Possibility to specify additional
1213          <tt>mount_filters</tt> in <tt>.cmtrc</tt></li>
1214
1215          <li class="new">Introduce new regexp-based remove operations
1216          for symbols <tt>macro_remove_regexp</tt>,
1217          <tt>set_remove_regexp</tt> and
1218          <tt>path_remove_regexp</tt></li>
1219
1220          <li class="new">Add <tt>-n</tt> and <tt>-v</tt> options to
1221          <tt>cmt cvs</tt> commands to support simulation and verbose
1222          modes</li>
1223
1224          <li class="new">Ensure that the <tt>constituents</tt> macro is always private</li>
1225
1226          <li class="new">Introduce support for <i>projects</i>
1227          associated with package areas, i.e. one project per item in
1228          <tt>CMTPATH</tt>. Possibility to setup strategies per
1229          project. Project definitions stored in a new
1230          <tt>cmt/project.cmt</tt> top level file. New
1231          <tt>&lt;package&gt;_project</tt> standard macro. And
1232          associated pattern templates.</li>
1233
1234          <li class="new">Make <tt>CMTINSTALLAREA</tt> a macro instead of a set</li>
1235
1236          <li class="new">Suppress dependency computation when the
1237          <tt>make QUICK=1</tt> option is used</li>
1238
1239          <li class="new">New <i>action</i> concept to support
1240          simplified shell action definition. Action is an extension
1241          of the generic symbol mechanism (like macros), thus defining
1242          an action uses the same syntax as macros. Actions are
1243          triggered with <tt>make</tt> or <tt>cmt do</tt></li>
1244
1245          <li class="new"><i>public</i> and <i>private</i> section can be ended by a
1246          new keyword <tt>end_public</tt> <tt>end_private</tt>. Ending
1247          keywords switch back to the previous scope active before the
1248          most recent opening keyword</li>
1249
1250          <li class="new">Can use a pattern name as a plain CMT
1251          keyword. I.e. the <tt>apply_pattern</tt> keyword is optional
1252          except to resolve ambiguities</li>
1253
1254          <li class="int">Generate part of the standard macros before
1255          reading the requirements file</li>
1256
1257          <li class="int">Lots of internal optimisations checked with
1258          <tt>valgrind</tt> and <tt>gprof</tt></li>
1259
1260          <li class="bug">Only set non empty environment variables</li>
1261
1262          <li class="bug">Fix bad definition of <tt>&lt;PACKAGE&gt;VERSION</tt></li>
1263
1264          <li class="bug">Add dependency to all stamps file to trigger rebuild of shared libraries</li>
1265
1266          <li class="bug">Add dependency to all requirements file to trigger rebuild of applications</li>
1267
1268          <li class="bug">Suppress install area cleanup action from
1269          cmt config and cmt setup</li>
1270
1271          <li class="bug">Improved syntax checking on constituents</li>
1272
1273          <li class="bug">Fix construction of paths when symlinks
1274          exist along pwd</li>
1275
1276          <li class="bug">Added various protections for bad pattern
1277          syntaxes</li>
1278
1279        </ul>
1280
1281      </li>
1282      <li>
1283        <b>v1r14p20031120</b>
1284        <ul>
1285          <li class="new">Add a new standard macro $(&lt;group&gt;_dependencies)to specify global dependencies for a group</li>
1286          <li class="new">Add support for bundles on Darwin platforms</li>
1287          <li class="bug">Consider symlinked paths in CMTPATH entries</li>
1288          <li class="bug">Always setup cmtpath patterns even if the current installation area is undefined</li>
1289
1290          <li class="new">Provide a generic pacman manifest file for
1291            CMT. All instances of the "&lt;version&gt;" pattern need to be
1292            substituted by the effective version of CMT to make it a
1293            real pacman file as follows:
1294            <pre>sed -e 's#[&lt;]version[&gt;]#'`cmt -quiet version`'#g' $CMTROOT/mgr/CMT.pacman</pre>
1295          </li>
1296
1297        </ul>
1298      </li>
1299
1300      <li>
1301        <b>v1r14p20031027</b>
1302        <ul>
1303          <li class="bug">Fix a bug in the bootstrap mechanism to define CMTINSTALLAREA</li>
1304        </ul>
1305      </li>
1306
1307      <li>
1308        <b>v1r14p20031022</b>
1309        <ul>
1310          <li class="new">Add the possibility to specify exclusion files when installing directories in Installation Area (on windows only)</li>
1311          <li class="bug">Fix a bug : CMTINSTALLAREA symbol has to be defined before all other symbols in set_standard_macros</li>
1312          <li class="bug">Few fixes on nmake flavour of install area mechanisms</li>
1313          <li class="new">Generate &lt;package&gt;_cmtpath and &lt;package&gt;_offset also for current package</li>
1314          <li class="bug">Fix warning messages that confuse csh when environment variables are not defined</li>
1315        </ul>
1316      </li>
1317
1318      <li>
1319        <b>v1r14p20031014</b>
1320        <ul>
1321          <li class="bug">Fix a problem in broadcast operation for handling return status 2 (caused to unexpectedly break the loop in some cases)</li>
1322          <li class="bug">Force auto_imports to On when context is unspecified (internal)</li>
1323          <li class="bug">Stop trying to make use of PWD</li>
1324          <li class="bug">Fix a bug in internal incomplete expansion of macros</li>
1325          <li class="bug">Fix a bug in consistency checks of PWD vs CMTINSTALLAREA</li>
1326          <li class="new">Convert $(cmtpath) and $(offset) macros to $(package_cmtpath) and $(package_offset)</li>
1327          <li class="new">Add dependency list for constituent makefile similar to the constituent target (force the same build order)</li>
1328          <li class="bug">Fix a bug in use graph internal management</li>
1329          <li class="bug">Fix setup script calling mechanism in no_version style</li>
1330          <li class="new">Add a -k=&lt;regexp&gt; argument for selection patterns of constituent sources.</li>
1331          <li class="new">Support wildcarded suffixes (*.*) in constituent sources</li>
1332          <li class="new">Standardize the output format of show uses (make it reliable for user scripts)</li>
1333        </ul>
1334      </li>
1335
1336      <li>
1337        <b>v1r14p20030811</b>
1338        <ul>
1339          <li class="bug">Trailing slashes on offset specification in use statement were causing troubles. Now they are properly handled.</li>
1340          <li class="new">The
1341broadcast pattern as well as the standard macro &lt;cmtpath&gt; is now
1342renamed &lt;package_cmtpath&gt; to avoid confusion with the CMTPATH
1343variable on Windows.</li>
1344          <li class="int">Make use of ${PWD} when available to acquire the value for "cmt show pwd"</li>
1345          <li class="bug">Add or refresh tuning for CYGWIN and for LynxOS</li>
1346          <li class="bug">Work around a limitation of some old version of the C++ compiler on LynxOS</li>
1347          <li class="new">Improve the display of incompatible use specifications.</li>
1348          <li class="int">Dynamically
1349create the CMTDownload.html web page to really reflect what is
1350available when installing the CMT release on the primary CMT web site.</li>
1351          <li class="bug">Setup.bat scripts on DOS are now relocatable wrt heterogeneous file systems (AFS, DFS, etc...)</li>
1352        </ul>
1353      </li>
1354
1355      <li>
1356        <b>v1r14p20030620</b>
1357        <ul>
1358          <li class="new">introduce a generic "Unix" tag for all Unix platforms. Both Linux, HP-UX, LynxOS, alpha, ... do validate Unix</li>
1359          <li class="new">hide
1360the make_fragments declaration in private sections. This was not true
1361previously. A make_fragment declaration installed in a private section
1362will now be hidden to clients.</li>
1363          <li class="bug">convert ${} into
1364$() syntax for tag makefiles on Windows. This actually reverts to a
1365feature of an old CMT version which had disappeared. This was causing a
1366problem since the ${} syntax is not understood by nmake</li>
1367          <li class="new">add
1368a command "cmt show use_paths &lt;target&gt;" to display all possible
1369paths to the target package. This is useful to understand how a given
1370package is reached, for instance when it is desired to cut the use
1371relationship and make it private somewhere in the graph.</li>
1372          <li class="new">add a command "cmt show cycles" to display circular dependencies in the use graph.</li>
1373          <li class="new">provide
1374a binary RPM for CMT itself (only for redhat 7.2 distribution). It is
1375downloadable from the usual Download page and provide a complete
1376installation of CMT (including make fragments, binary, etc..). It is a
1377relocatable RPM (install it using the --relocate option). (See the
1378install WEB page for complete notice)</li>
1379          <li class="new">Add an
1380extended script to retrieve information about Linux version
1381(cmt_linux_version.sh). It supports Redhat, Debian, Suse. It is used to
1382compute the cmt_system_version macro (contributions from Clark McGrew
1383and Wim Lavrijsen)</li>
1384          <li class="bug">The setup scripts for
1385Windows now use %TEMP% instead of %HOMEDRIVE%%HOMEPATH% to store
1386temporary files (contributions from Pere Mato and Florence Ranjard)</li>
1387          <li class="new">Add
1388the --public and --private global options for cmt commands, to control
1389whether the use graph traverses or not the private sections:
1390<pre>&gt; cmt --public ...
1391</pre> only sees public uses (default behavior for most commands but
1392not for cmt broadcast and cmt show uses which traverse the private sub
1393graphs)
1394<pre>&gt; cmt --private ...
1395</pre> forces the traversal of private subgraphs. This is already the
1396default behavior for cmt show uses and for cmt broadcast, but can now
1397be applied to any CMT command.</li>
1398          <li class="bug">A global pattern specifying private sections did not really generate private definitions</li>
1399        </ul>
1400      </li>
1401
1402<!--
1403      <li>
1404        <b></b>
1405        <ul>
1406          <li class=""></li>
1407        </ul>
1408      </li>
1409-->
1410
1411    </ul>
1412
1413
1414    <hr>
1415    <address><a href="mailto:arnault@lal.in2p3.fr">Christian Arnault</a></address>
1416 
1417</body></html>
Note: See TracBrowser for help on using the repository browser.