Index: CMT/v1r25-branch/ChangeLog
===================================================================
--- CMT/v1r25-branch/ChangeLog	(revision 669)
+++ CMT/v1r25-branch/ChangeLog	(revision 671)
@@ -1,2 +1,8 @@
+2014-02-04    <rybkin@lal.in2p3.fr> 526
+
+	* mgr/CMT.pacman: Update
+	* doc/ReleaseNotes.html: idem
+	* doc/CMTDownload.html: idem
+	
 2014-01-31    <rybkin@lal.in2p3.fr> 525
 
Index: CMT/v1r25-branch/doc/CMTDownload.html
===================================================================
--- CMT/v1r25-branch/doc/CMTDownload.html	(revision 669)
+++ CMT/v1r25-branch/doc/CMTDownload.html	(revision 671)
@@ -1,4 +1,3 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html><head><!--
+<!--
 //-----------------------------------------------------------
 // Copyright Christian Arnault LAL-Orsay CNRS
@@ -6,28 +5,14 @@
 // See the complete license in cmt_license.txt "http://www.cecill.info". 
 //-----------------------------------------------------------
---><title>CMTDownload</title><!-- Changed by: Christian Arnault, 10-Apr-2002 --><!-- phpmyvisites -->
-        
+-->
 
-<script type="text/javascript">
-<!--
-var a_vars = Array();
-var pagename='';
-
-var phpmyvisitesSite = 1;
-var phpmyvisitesURL = "http://www.cmtsite.org/phpmv2/phpmyvisites.php";
-//-->
-</script><script language="javascript" src="CMTDownload_fichiers/phpmyvisites.js" type="text/javascript"></script></head><body alink="#007777" bgcolor="#ffffff" link="#550088"><a href="http://www.phpmyvisites.net/" title="phpMyVisites | Open source web analytics" onclick="window.open(this.href);return(false);">
-
-<img src="CMTDownload_fichiers/phpmyvisites.gif" alt="phpMyVisites" style="border: 0pt none ;">
-
-<noscript>
-<p>phpMyVisites | Open source web analytics
-<img src="http://www.cmtsite.org/phpmv2/phpmyvisites.php" alt="phpMyVisites" style="border:0" />
-</p>
-</noscript>
-</a>
-<!-- /phpmyvisites -->
-
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+    <title>CMTDownload</title>
+    <!-- Changed by: Christian Arnault, 10-Apr-2002 -->
+  </head>
   
+  <body BGCOLOR="#FFFFFF" link="#550088" alink="#007777" alink="#007777">
     <h1>CMTDownload</h1>
 
@@ -36,25 +21,26 @@
         <i>You should first download the source kit of CMT, and this kit is
       complete for a local rebuild. In addition, it is optionally
-      possible to obtain some prebuilt binaries for some platforms
+      possible to obtain some prebuilt binaries for some platforms:
+<!--
       (note that any binary kit also requires to first download the
       source kit for a proper installation of CMT):
+-->
         </i>
       </blockquote>
 
       <center>
-	<table border="1" cols="1">
-
-<tbody><tr><td><a href="http://www.cmtsite.org/phpmv2/phpmyvisites.php?url=http://www.cmtsite.org/v1r19/CMTv1r19.tar.gz&amp;id=1&amp;pagename=FILE:CMTv1r19.tar.gz">Source kit</a> </td></tr>
-<tr><td><a href="http://www.cmtsite.org/phpmv2/phpmyvisites.php?url=http://www.cmtsite.org/v1r19/CMTv1r19OSF1-alpha.tar.gz&amp;id=1&amp;pagename=FILE:CMTv1r19OSF1-alpha.tar.gz">OSF1-alpha</a> </td></tr>
-<tr><td><a href="http://www.cmtsite.org/phpmv2/phpmyvisites.php?url=http://www.cmtsite.org/v1r19/CMTv1r19Linux-i686.tar.gz&amp;id=1&amp;pagename=FILE:CMTv1r19Linux-i686.tar.gz">Linux-i686</a> </td></tr>
-<tr><td><a href="http://www.cmtsite.org/phpmv2/phpmyvisites.php?url=http://www.cmtsite.org/v1r19/CMTv1r19Linux-x86_64.tar.gz&amp;id=1&amp;pagename=FILE:CMTv1r19Linux-x86_64.tar.gz">Linux-x86_64</a> </td></tr>
-<tr><td><a href="http://www.cmtsite.org/phpmv2/phpmyvisites.php?url=http://www.cmtsite.org/v1r19/CMTv1r19Linux-ia64.tar.gz&amp;id=1&amp;pagename=FILE:CMTv1r19Linux-ia64.tar.gz">Linux-ia64</a> </td></tr>
-<tr><td><a href="http://www.cmtsite.org/v1r19/CMTv1r19SunOS-sun4u.tar.gz">SunOS-sun4u</a> </td></tr>
-<tr><td><a href="http://www.cmtsite.org/v1r19/CMTv1r19AIX-002064874C00.tar.gz">AIX-002064874C00</a> </td></tr>
-<tr><td><a href="http://www.cmtsite.org/phpmv2/phpmyvisites.php?url=http://www.cmtsite.org/v1r19/CMTv1r19VisualC.tar.gz&amp;id=1&amp;pagename=FILE:CMTv1r19VisualC.tar.gz">VisualC</a> </td></tr>
-<tr><td><a href="http://www.cmtsite.org/v1r19/CMTv1r19CYGWIN_NT-5.1-i686.tar.gz">CYGWIN_NT-5.1-i686</a> </td></tr>
-<tr><td><a href="http://www.cmtsite.org/phpmv2/phpmyvisites.php?url=http://www.cmtsite.org/v1r19/CMTv1r19Darwin-PowerMacintosh.tar.gz&amp;id=1&amp;pagename=FILE:CMTv1r19Darwin-PowerMacintosh.tar.gz">Darwin-PowerMacintosh</a> </td></tr>
-
-
+	<table BORDER COLS=1 >
+  <tr><td><a href="CMTv1r26p20140131.tar.gz">Source kit</a> </td></tr>
+  <tr><td><a href="CMTv1r26p20140131Linux-i686.tar.gz">Linux-i686 and Linux-x86_64</a> </td></tr>
+  <tr><td><a href="CMTv1r26p20140131Linux-i686-v1r26p20140131-1.i686.rpm">Linux-i686 and Linux-x86_64 rpm</a> </td></tr>
+<!--
+  <tr><td><a href="CMTv1r26p20140131Darwin-PowerMacintosh.tar.gz">Darwin-PowerMacintosh (ppc, Tiger)</a> </td></tr>
+-->
+  <tr><td><a href="CMTv1r26p20140131Darwin-i386.tar.gz">Darwin-i386 (universal binary with x86_64 and i386, Mountain Lion)</a> </td></tr>
+<!--
+  <tr><td><a href="CMTv1r26p20140131VisualC71.zip">VisualC71 (Visual Studio .NET 2003)</a> </td></tr>
+  <tr><td><a href="CMTv1r26p20140131VisualC.zip">VisualC9 (Visual Studio 2008)</a> </td></tr>
+  <tr><td><a href="CMTv1r26p20140131VisualC10.zip">VisualC10 (Visual Studio 2010)</a> </td></tr>
+-->
 <!--
 //-----------------------------------------------------------
@@ -66,13 +52,15 @@
 
 
-	</tbody></table>
+	</table>
       </center>
 
 
     <hr>
-    <address><a href="mailto:garonne@lal.in2p3.fr">vincent Garonne</a></address>
+    <address><a href="mailto:rybkin at lal.in2p3.fr">Grigory Rybkin</a></address>
     <!-- Created: Thu Feb  3 15:55:09 MET 2000 -->
     <!-- hhmts start -->
-Last modified: Wed Nov 22 15:55:11 CEST 2006
+Last modified: Tue Feb 04 2014
+<!-- Fri May 22 10:13:49 CEST 2009 -->
 <!-- hhmts end -->
-  </body></html>
+  </body>
+</html>
Index: CMT/v1r25-branch/doc/ReleaseNotes.html
===================================================================
--- CMT/v1r25-branch/doc/ReleaseNotes.html	(revision 669)
+++ CMT/v1r25-branch/doc/ReleaseNotes.html	(revision 671)
@@ -1,2 +1,5 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html><head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
 <!--
 //-----------------------------------------------------------
@@ -5,12 +8,12 @@
 // See the complete license in cmt_license.txt "http://www.cecill.info". 
 //-----------------------------------------------------------
--->
-
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-  <head>
-    <title>Release notes</title>
-
-    <style type='text/css'>
+--><title>Release notes</title>
+
+
+
+  
+    
+
+    <style type="text/css">
 li.bug
 {
@@ -27,8 +30,5 @@
 }
 <!--  font-style:italic; -->
-    </style>
-  </head>
-  
-  <body BGCOLOR="#FFFFFF" link="#550088" alink="#007777" alink="#007777">
+    </style></head><body alink="#007777" bgcolor="#ffffff" link="#550088">
     <h1>Release notes</h1>
 
@@ -44,7 +44,554 @@
     <ul>
 
+
+ <li>
+        <b>v1r26p20140131, v1r25p20140131</b>
+	<ul>    
+
+    <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
+</li>
+    <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;"
+</li>
+    <li class="new">In "cmt show tags" command output, print uses in which apply_tag statement appears for tag
+</li>
+    <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)
+</li>
+    <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)
+</li>
+    <li class="new">Make requirements file in special CMTHOME, CMTUSERCONTEXT projects non-mandatory
+</li>
+    <li class="new">Add support for devbranches directory - additional branches location - in Subversion repository
+</li>
+    <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.,
+<pre>pattern find_pkg \
+  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`" ; \
+  apply_tag $(&lt;package&gt;_find_&lt;pkg&gt;)
+
+pattern use_pkg_if_found \
+  apply_pattern find_pkg pkg=&lt;pkg&gt; ver=&lt;ver&gt; offset=&lt;offset&gt; ; \
+  macro &lt;package&gt;_&lt;pkg&gt;_info "" &lt;package&gt;_&lt;pkg&gt;_found "&lt;pkg&gt; &lt;ver&gt; &lt;offset&gt;" ; \
+  use $(&lt;package&gt;_&lt;pkg&gt;_info)
+
+apply_pattern use_pkg_if_found pkg=MyExtraPatterns ver=*</pre>
+</li>
+
+    <li class="bug">Fully resolve set values in setup scripts for consistency
+</li>
+    <li class="bug">Make fixes/improvements to source files dependencies generator (reported by Joerg Stelzer)
+</li>
+    <li class="bug">Improve diagnostics messages for project file syntax errors
+</li>
+
+    <li class="int">Optimise and improve CMT shell setup and cleanup scripts
+</li>
+    <li class="int">Optimise and make cleaner initial configuration procedure
+</li>
+    <li class="int">General performance optimisation
+</li>
+    <li class="int">Optimise "cmt checkout" command performance (algorithm suggested by Wim Lavrijsen), introduce SVNDEBUG environment variable to facilitate debugging
+</li>
+    <li class="int">Work around Make errors if stamps files do not exist
+</li>
+
+        </ul>
+ </li>    
+
+ <li>
+        <b>v1r25p20130606</b>
+	<ul>    
+
+    <li class="new">Exclude aliases from the output of commands "cmt show set_names", "cmt show sets" (requested by David Quarrie)
+</li>
+    <li class="new">Allow for possibly multi-line output of commands in command substitution (introduced with backquotes, `COMMAND`)
+</li>
+    <li class="new">Detect clang compiler on Mac OS X platform
+</li>
+
+    <li class="bug">Parse includes acquired via include_dirs statement for imported uses
+</li>
+    <li class="bug">For applications belonging to "check" group, ensure that application is built before running check (reported by Andrei Kazarov and Andrei Salnikov)
+</li>
+    <li class="bug">Fix cleanup of libraries for Darwin platform
+</li>
+    <li class="bug">Ensure that *.in files are cleaned up in binary tag directory only (reported by Andrei Kazarov)
+</li>
+
+    <li class="int">Optimise makefile fragments so that implicit rule is not searched for
+</li>
+
+        </ul>
+ </li>    
+
+ <li>
+        <b>v1r26</b>
+	<ul>    
+
+    <li class="new">Compile dependent applications, libraries in parallel for build time optimisation
+</li>
+    <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
+</li>
+    <li class="new">Exclude aliases from the output of commands "cmt show set_names", "cmt show sets" (requested by David Quarrie)
+</li>
+    <li class="new">Allow for possibly multi-line output of commands in command substitution (introduced with backquotes, `COMMAND`)
+</li>
+    <li class="new">Detect clang compiler on Mac OS X platform
+</li>
+
+    <li class="bug">Parse includes acquired via include_dirs statement for imported uses
+</li>
+    <li class="bug">For applications belonging to "check" group, ensure that application is built before running check (reported by Andrei Kazarov and Andrei Salnikov)
+</li>
+    <li class="bug">Fix cleanup of libraries for Darwin platform
+</li>
+
+    <li class="int">Optimise makefile fragments so that implicit rule is not searched for
+</li>
+
+        </ul>
+ </li>    
+
+ <li>
+        <b>v1r25</b>
+	<ul>    
+
+    <li class="new">Implement commands "cmt show alias", "cmt show alias_names", "cmt show alias_value", 	"cmt show aliases" (requested by David Quarrie)
+</li>
+    <li class="new">Implement enhanced mechanism of source files dependencies generation at
+compilation time making use of -MMD preprocessor option for C/C++ libraries/applications, to enable, tag c_native_dependencies/cpp_native_dependencies should be activated
+</li>
+
+    <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)
+</li>
+    <li class="bug">Fix/improve prototypes handling (reported by Andrei Kazarov and Franco Carbognani)
+</li>
+
+    <li class="int">Optimise internal source files dependencies generator, command "cmt build dependencies" (make more than 4 times faster)
+</li>
+    <li class="int">Optimise requirements files parsing (make ~ 2 times faster), optimise string manipulation functions
+</li>
+    <li class="int">Make use of system functions realpath (POSIX) and _fullpath (Windows)
+</li>
+    <li class="int">Introduce use member to hold canonicalized absolute realpath so as not to re-calculate it several times
+</li>
+    <li class="int">Optimise/improve paths handling
+</li>
+    <li class="int">Optimise CMT setup scripts by reducing the number of processes
+</li>
+    <li class="int">Improve error handling
+</li>
+
+        </ul>
+ </li>    
+
+ <li>
+        <b>v1r24</b>
+	<ul>    
+
+    <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
+</li>
+    <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
+</li>
+    <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
+</li>
+    <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".
+</li>
+    <li class="new">By default, set MAKEFLAGS, if unset, to set number of job slots to number of processors, and enable CMT QUICK mode
+</li>
+    <li class="new">In QUICK mode, rebuild constituent(s) or broadcast (N)Makefile and corresponding macros files, if any requirements file changes only
+</li>
+    <li class="new">In QUICK mode, run "cmt build/remove library_links" commands with library_links input file, if any requirements file changes only
+</li>
+    <li class="new">In QUICK mode, files dependencies are always rebuilt, if a file or its dependency change
+</li>
+    <li class="new">Implement dynamic help messages on variables targets available for BCAST mode
+</li>
+    <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)
+</li>
+    <li class="new">Enhance/fix command completions for TCSH, ZSH, implement command completion for BASH
+</li>
+    <li class="new">Make "cmt check configuration" command exit with error, if non-constant cmtpath_pattern found for package outside CMTPATH - cannot be applied
+</li>
+    <li class="new">Do not keep .DEFAULT target in constituents Makefile, if PEDANTIC is defined
+</li>
+
+    <li class="bug">Ensure document source files dependencies get rebuilt whenever source file or its dependencies change
+</li>
+    <li class="bug">Make uninstall target (rather than clean target) dependent on remove_library_links target to ensure library links uninstallation
+</li>
+    <li class="bug">Implement error handling for "cmt create" command
+</li>
+    <li class="bug">Make "cmt build dependencies" command exit with error, if path specified for dependencies calculation is not found
+</li>
+    <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
+</li>
+    <li class="bug">Enhance error handling for input files generation, if fragment is not found
+</li>
+    <li class="bug">In (un)install_action.sh(.bat) scripts, exit with error on file command or reference file command error
+</li>
+    <li class="bug">Print help info on stdout (rather than stderr)
+</li>
+
+    <li class="int">In class cmt_regexp, introduce and implement clear function, use it in classes Use, Project
+</li>
+    <li class="int">In class CmtGenerator, remove prepare_use_context function, m_deps_builder member
+</li>
+    <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
+</li>
+    <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
+</li>
+    <li class="int">Incorporate call to do_check_configuration into function do_build_constituents_config
+</li>
+    <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
+</li>
+    <li class="int">Make constituent name optional for "cmt build dependencies" command
+</li>
+    <li class="int">In (N)Makefile fragments, specify explicit empty command in (un)install, check target rules (for optimisation, to avoid implicit rule search)
+</li>
+    <li class="int">In class CmtError, introduce system_error code
+</li>
+    <li class="int">On Windows, use _unlink, _chmod, _putenv instead of deprecated - beginning in Visual C++ 2005 - POSIX names functions
+</li>
+        </ul>
+ </li>    
+
+ <li>
+        <b>v1r23</b>
+	<ul>    
+
+    <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
+</li>
+    <li class="new">Provide tag activation context in "cmt show tags" command output, if does not duplicate already printed information
+</li>
+    <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
+</li>
+    <li class="new">Ensure head version (matching CMTHEADVERSION environment variable, or HEAD or head) satisfies any use request and takes precedence
+</li>
+    <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)
+</li>
+    <li class="new">Rename cmt/version.cmt and issue warning if under version control and checked out with CMT structuring style with_version_directory
+</li>
+    <li class="new">Optimise fragment search, issue warning, if not found
+</li>
+    <li class="new">Improve error handling, diagnostic and help messages for some commands
+</li>
+    <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
+</li>
+    <li class="bug">Improve handling of -f=&lt;file&gt; option
+</li>
+    <li class="bug">Make option -e=&lt;extra-statement(s)&gt; functional
+</li>
+    <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
+</li>
+    <li class="int">When building CMT with GNU Make, allow for user overrides/extra flags via CXXFLAGS, LDFLAGS, TARGET_ARCH variables
+</li>
+    <li class="int">Reduce the number of pwd function invocations
+</li>
+        </ul>
+ </li>    
+
+ <li>
+        <b>v1r22</b>
+	<ul>    
+
+    <li class="new">Introduce option -requirements for command "cmt setup" to generate standalone requirements file from which generate setup script
+</li>
+    <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)
+</li>
+    <li class="new">Ensure QUICK mode can be used for from scratch build (requested by RD Schaffer)
+</li>
+    <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
+</li>
+    <li class="bug">Ensure CMTSTRUCTURINGSTYLE environment variable setting be functional with "cmt co" command
+</li>
+    <li class="bug">Enhance cleanup of setup temporary files
+</li>
+    <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)
+</li>
+    <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)
+</li>
+    <li class="bug">For -no_static mode, generate &lt;library&gt;.stamp in addition to &lt;library&gt;.shstamp
+</li>
+    <li class="int">Projects (other than current project) coming from CMTPATH entries are not ignored in case current project does not have parents
+</li>    
+    <li class="int">Enhance error handling in NMakefiles
+</li>    
+    <li class="int">To generate setup/cleanup scripts for standalone package, use same functions as for standard packages
+</li>
+    <li class="int">In case of project requested with conflicting releases, issue warning, do not set CmtError
+</li>    
+    <li class="int">Add optional argument of type ostream for several functions
+</li>    
+    <li class="int">Do not use Makefile common_target to have one process fewer
+</li>    
+
+        </ul>
+ </li>    
+
+ <li>
+        <b>v1r21</b>
+	<ul>    
+    <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)
+</li>
+    <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)
+</li>
+    <li class="new">Implement new options -C (for context), -i (for info) of "cmt co|checkout" command
+</li>
+    <li class="new">Make options -R (recursive checkout) and -requirements (checkout from requirements file) functional with Subversion
+</li>
+    <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
+</li>
+    <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)
+</li>
+    <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)
+</li>
+    <li class="new">Use system dependent size PATH_MAX for path name arrays instead of 256 (requested by Francesco Prelz)
+</li>
+    <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)
+</li>
+    <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 *
+</li>
+    <li class="bug">Allow for doing setup with setup scripts generated by "cmt config" from any place (with a correct CMTPROJECTPATH), resolving ticket #57
+</li>
+    <li class="bug">Enhance/Improve error handling in general, diagnostic and help messages
+</li>
+    <li class="bug">Exit with an error on file (including stdout) write errors
+</li>
+    <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
+</li>
+    <li class="bug">Improve projects ordering
+</li>
+    <li class="int">Optimise retrieval of Mac OS version
+</li>    
+    <li class="int">Introduce diagnostic function for CMTVERBOSE level
+</li>    
+    <li class="int">Do not use "no_version_style"
+</li>    
+
+	</ul>
+      </li>
+
+ <li>
+        <b>v1r20p20090520</b>
+	<ul>    
+    <li class="new">Implement the generation of dependencies Makefiles (one per source file) making use of the language compiler (preprocessor)
+<pre>
+The corresponding compiler options should be passed via the -dependencies_options=OPTIONS option of the language
+
+Define the cppdepflags, cdepflags macros that hold the compiler options to generate dependencies for Linux,
+Darwin, VisualC when the tags cpp_native_dependencies, c_native_dependencies are activated
+
+Pass cppdepflags, cdepflags to the c++, c languages as defined by CMT
+
+Introduce mgr/cmt_format_deps.sh(.bat) scripts to be used for the generation of one dependencies (N)Makefile
+per source file, define the format_dependencies macro via the introduced scripts
+
+NOTE: To use the feature, the tags cpp_native_dependencies, c_native_dependencies need to be activated
+(not activated by default)
+</pre></li>
+
+    <li class="new">Implement the generation of dependencies depending on the files
+modifications rather than every time NMake is run for Windows
+<pre>
+Same as for Unix-like systems
+</pre></li>
+
+    <li class="new">Complete the message of the "cmt make help" command
+</li>
+
+    <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
+</li>
+
+    <li class="new">For Darwin, build statically linked (archive) libraries	with "libtool", the recommended way
+</li>
+
+    <li class="new">Add the possibility to do checkout of CMT packages from Subversion repository via the "cmt checkout" command
+<pre>
+The choice between CVS and Subversion is made based on which environment variable - CVSROOT or SVNROOT - is set
+
+For checkout from Subversion repository, the command specified via macro svn_checkout_command (set by CMT to
+mgr/cmt_svn_checkout.py, based on Subversion Python bindings) is used
+
+CVS checkout is done via the CVS command line client
+</pre></li>
+
+    <li class="bug">Ensure that the &lt;constituent&gt;_use_linkopts macro is set in case the
+constituent -import=&lt;package&gt; options effectively import nothing
+</li>    
+    <li class="bug">Ensure that the use_stamps macro is set taking into account the -no_auto_imports options
+</li>    
+
+    <li class="bug">Ensure that command "cmt show groups" is functional
+</li>    
+
+    <li class="bug">Use POSIX conformant syntax for shell utilities
+</li>    
+
+    <li class="bug">Ensure that dangling symbolic links can be uninstalled
+</li>    
+
+    <li class="bug">Ensure "cmt checkout" command exit status is set to a nonzero value on error
+</li>    
+
+    <li class="int">Optimise the retrieval of the Mac OS version
+</li>    
+
+    <li class="int">In the QUICK mode, generate $(cmt_local_tagfile) if non-existent
+</li>    
+
+    <li class="int">Ensure that uninstallation (make uninstall) be done in reverse build order (for Unix-like systems for now)
+</li>    
+
+    <li class="int">Remove the connection between clean and uninstall targets for Windows - same as for Unix-like systems
+</li>    
+
+    <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
+</li>    
+
+    <li class="int">Change the names of the files recording the setup to $(bin)setup.(n)make and $(bin)setup_${CONSTITUENT}.(n)make
+</li>    
+
+    <li class="int">Make the READONLY mode obsolete (the relocation	of the binary build directory provides this functionality as well)
+</li>    
+
+    </ul>
+</li>    
+
+ <li>
+        <b>v1r20p20081118</b>
+	<ul>    
+	
+    <li class="new">Implement the -no_static option for libraries
+    <pre>by default both static and shared library are built
+</pre></li>
+    <li class="new">Introduce diagnostic messages levels: Debug, Info, Warning, Error, Fatal
+<pre>Default value: Info, the level to use can be configured using the environment variables
+CMTDEBUG, CMTINFO, CMTWARNING, CMTERROR, CMTFATAL (in order of precedence) if set to a non-empty string
+and/or the existing command line options -warnings (Warning), -disable_warnings (Error), -quiet (Fatal)
+</pre></li>
+    <li class="new">Use diagnostic messages prefix consistently
+<pre>default value: #CMT---&gt;, can be configured using the environment variable CMTMSGPREFIX
+</pre></li>
+<li class="new">Retrieve the package version when structuring style used is `without_version_directory' from:
+<pre>
+1) cmt/version.cmt file if available (and readable)
+2) version statement in the package requirements file
+</pre></li>
+<li class="new">Allow for the relocation of the binary build directory
+<pre>
+via redefinition of the bin macro. E.g., macro bin "$(TMPDIR)/$(package)" in ${CMTUSERCONTEXT}/requirements, then
+$ cmt make
+</pre></li>
+<li class="new">Add the -rs suffix option to the cmt checkout command
+<pre>
+E.g.,
+$ cmt co packagename -rs -00-01-02
+same as
+$ cmt co packagename -r packagename-00-01-02
+(proposed by David Rousseau)
+</pre></li>
+    <li class="bug">Correct CMTPATH entries ordering and the application of cmtpath_pattern's in case of diamond project hierarchy</li>
+    <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>
+    <li class="bug">Correct handling of the requirements file in ${CMTHOME} and/or ${CMTUSERCONTEXT} if specified and exist</li>
+    <li class="bug">Correct cmt broadcast in case of symlinks in the paths</li>
+    <li class="bug">Correct the handling of the -with_version_directory and -without_version_directory command line options with cmt checkout</li>
+    <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>
+    <li class="int">Do not set macro ${CONSTITUENT}linkopts, use $(cmt_installarea_linkopts) with $(${CONSTITUENT}_use_linkopts) instead of $(use_linkopts) for applications</li>
+    <li class="int">Generate the BIN macro to hold an absolute path for the path specified by the bin macro</li>
+
+    </ul>
+</li>    
+
+ <li>
+        <b>v1r20p20080222</b>
+	<ul>    
+	
+    <li class="new">Control the verbosity of Make
+    <pre>by setting the following Make variables (in order of precedence):
+VERBOSE - print CMT messages and echo Make commands
+QUIET - print CMT messages (default)
+ECHO - echo Make commands
+SILENT - no CMT messages or Make commands echoing
+NOTE: In order to have user provided CMT documents (makefile fragments) controlled
+by these switches, the CMT document author
+- will not prefix command lines with @ (or prefix with macro $(silent))
+- will print messages (if any) starting a separate command line with macro $(echo)
+(see, e. g., mgr/fragments/tex)</pre></li>
+    <li class="new">Control the prefix of the CMT messages
+    <pre>via the Make variable CMTMSGPREFIX (default value: #CMT---&gt;)</pre></li>
+    <li class="bug">Correct the passing of (N)Make options for recursive (N)Make invocations</li>
+    <li class="new">Ensure CVS operations are retried in case of failure</li>
+    <li class="int">Optimise a number of internally used scripts by reducing the number of processes (used a patch from KELEMEN Peter)</li>
+    <li class="bug">Correct the handling of the -with_version_directory
+	and -without_version_directory command line options</li>
+    <li class="bug">Ensure the dependencies are re-calculated
+	whenever the included files are changed (the problem pointed out by Marco)</li>
+    <li class="bug">Improve the handling of symlinks in the paths</li>
+    <li class="new">Do not rebuild any *.make files when Make variable QUICK is defined
+    <pre>This may be used to save time when developing a package code without changing configuration or source files dependencies </pre></li>
+    <li class="int">Make use of the structuring style, when
+	configuring a package without a version.cmt file, to allow the use
+	of digits in package names of such packages structured without
+	a version directory. Improve diagnostic messages for this case</li>
+
+    <li class="new">Allow simultaneous/parallel	builds for multiple binary tags
+    (used suggestions from Pere, Stefan, and Andrea):
+    <pre>- build all the makefiles in the binary tag directory
+- implement a locking mechanism
+The mechanism is in effect for CMT documents if
+macros lock_command, unlock_command are set to non-empty strings (default).
+Then, command ${lock_command} ${CONSTITUENT}${lock_suffix} is run by CMT to create the lock file in the package cmt directory
+before the document ${CONSTITUENT} is built,
+and command ${unlock_command} ${CONSTITUENT}${lock_suffix} is run by CMT to remove the lock file
+after the document ${CONSTITUENT} is built.
+The assumption is that while CMT applications, and libraries for different binary tags deal with different files,
+documents for different binary tags may deal with (e. g., build, install)
+the same files (e. g., header files). The locking mechanism is to ensure the documents are done one at a time</pre></li>
+    <li class="new">Implement an optional header file filter mechanism to replace
+        header files matching a pattern with a stamp file when calculating files dependencies
+    <pre>The mechanism is in effect if there is a package which
+- sets macro &lt;package&gt;_header_file_filter (to a regular expression)
+- sets macro &lt;package&gt;_header_file_stamp to a path of an existing file
+or file $(PACKAGE_ROOT)/cmt/cmt_header_file.stamp exists.
+Then, each header file whose path matches one of the regular expressions (if several packages activate the mechanism)
+is replaced with the corresponding stamp file in the dependency calculation and
+its dependencies are not examined. This may reduce the dependencies calculation time significantly.
+Example:
+macro Boost_header_file_filter $(Boost_home)/include/boost-$(Boost_file_version)
+macro Boost_header_file_stamp $(Boost_home)/include/boost-$(Boost_file_version)/boost/any.hpp
+The dependencies of the source files including Boost header files will only include the any.hpp file path.
+    </pre>
+    </li>
+
+    </ul>
+</li>    
+
+ <li>
+        <b>v1r20p20070720</b>
+	<ul>    
+	
+    <li class="bug">Fix the generation of source files dependencies</li>
+    <li class="bug">Fix the `cmt show version' command</li>    
+
+    </ul>
+</li>    
+
+ <li>
+        <b>v1r20p20070524</b>
+	<ul>    
+	
+	<li class="new">activate the support to PWD env. var.</li>	
+    <li class="bug">Send error &amp; warning messages to stderr instead of stdout.</li>
+    <li class="bug">Fix cvs interface.</li>    
+    <li class="int">Make use of the $(jar) macro</li>
+    
+
+    </ul>
+</li>    
+
+
  <li>
         <b>v1r20p20070208</b>
 	<ul>    
+	
     <li class="bug">Disable the creation of <tt>&lt;project&gt;_ROOT/CONFIG</tt> 
      variables for the PACKAGE_POLICY_FOR_<tt>&lt;project&gt;</tt> virtual package</li>
@@ -87,6 +634,5 @@
     </li>        
     <li class="new">Extend the strategy syntax for supporting variable, e.g.:
-    <pre>
-        macro use_strategy "without_installarea" \
+    <pre>        macro use_strategy "without_installarea" \
                    ATLAS "with_installarea"
 
@@ -133,6 +679,5 @@
     to obtain it from command line.</li>
     <li class="new">Extend the strategy syntax for supporting variable, e.g.:
-    <pre>
-        macro use_strategy "without_installarea" \
+    <pre>        macro use_strategy "without_installarea" \
                    ATLAS "with_installarea"
 
@@ -167,11 +712,15 @@
 
 	  <li class="new">
-	  Add a touch functionnality, e.g. <tt>cvs co -t package</tt>, during cvs checkout, this is mainly due that cvs keeps the file 
-	  timestamps so that build tools, i.d. make, can not recognize it as "new". The "best" default behaviour is for it to set the filestamp 
-	  to the checkout time.</li>
-
-      <li class="new"> Add the support on Linux/make for creating separate directory for libraries/constituents.
-      To be Atlas compliant, this strategy is not built by default you should called explicitely the STRUCTURED_OUTPUT option, 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 
+	  Add a touch functionnality, e.g. <tt>cvs co -t package</tt>,
+during cvs checkout, this is mainly due that cvs keeps the file
+timestamps so that build tools, i.d. make, can not recognize it as
+"new". The "best" default behaviour is for it to set the filestamp to
+the checkout time.</li>
+
+      <li class="new"> Add the support
+on Linux/make for creating separate directory for
+libraries/constituents. To be Atlas compliant, this strategy is not
+built by default you should called explicitely the STRUCTURED_OUTPUT
+option, 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 
       report</a>.</li>
 
@@ -182,7 +731,7 @@
 	  within cvs.</li>
 
-      <li class="int">Translate symlinks for the <tt>cmt show packages</tt> command.<li>
-
-	  <li class="bug"> Bring a better support for the cmt checkout operation to bypass cvs weird behaviours, e.g. chekout 
+      <li class="int">Translate symlinks for the <tt>cmt show packages</tt> command.</li><li>
+
+	  </li><li class="bug"> Bring a better support for the cmt checkout operation to bypass cvs weird behaviours, e.g. chekout 
 	  localy a directory whithout any files inside creates nothing.</li>
 
@@ -190,5 +739,5 @@
        <tt>without version directory</tt>mode.</li>
 
-      <li class="bug">Compute the project of the package when expanding the <project> template to fix packages with offset .</li>
+      <li class="bug">Compute the project of the package when expanding the <project> template to fix packages with offset .</project></li>
 	  	  	  
 	</ul>
@@ -789,10 +1338,15 @@
 	<ul>
 	  <li class="bug">Trailing slashes on offset specification in use statement were causing troubles. Now they are properly handled.</li>
-	  <li class="new">The broadcast pattern as well as the standard macro &lt;cmtpath&gt; is now renamed &lt;package_cmtpath&gt; to avoid confusion with the CMTPATH variable on Windows.</li>
+	  <li class="new">The
+broadcast pattern as well as the standard macro &lt;cmtpath&gt; is now
+renamed &lt;package_cmtpath&gt; to avoid confusion with the CMTPATH
+variable on Windows.</li>
 	  <li class="int">Make use of ${PWD} when available to acquire the value for "cmt show pwd"</li>
 	  <li class="bug">Add or refresh tuning for CYGWIN and for LynxOS</li>
 	  <li class="bug">Work around a limitation of some old version of the C++ compiler on LynxOS</li>
 	  <li class="new">Improve the display of incompatible use specifications.</li>
-	  <li class="int">Dynamically create the CMTDownload.html web page to really reflect what is available when installing the CMT release on the primary CMT web site.</li>
+	  <li class="int">Dynamically
+create the CMTDownload.html web page to really reflect what is
+available when installing the CMT release on the primary CMT web site.</li>
 	  <li class="bug">Setup.bat scripts on DOS are now relocatable wrt heterogeneous file systems (AFS, DFS, etc...)</li>
 	</ul>
@@ -803,20 +1357,43 @@
 	<ul>
 	  <li class="new">introduce a generic "Unix" tag for all Unix platforms. Both Linux, HP-UX, LynxOS, alpha, ... do validate Unix</li>
-	  <li class="new">hide the make_fragments declaration in private sections. This was not true previously. A make_fragment declaration installed in a private section will now be hidden to clients.</li>
-	  <li class="bug">convert ${} into $() syntax for tag makefiles on Windows. This actually reverts to a feature of an old CMT version which had disappeared. This was causing a problem since the ${} syntax is not understood by nmake</li>
-	  <li class="new">add a command "cmt show use_paths &lt;target&gt;" to display all possible paths to the target package. This is useful to understand how a given package is reached, for instance when it is desired to cut the use relationship and make it private somewhere in the graph.</li>
+	  <li class="new">hide
+the make_fragments declaration in private sections. This was not true
+previously. A make_fragment declaration installed in a private section
+will now be hidden to clients.</li>
+	  <li class="bug">convert ${} into
+$() syntax for tag makefiles on Windows. This actually reverts to a
+feature of an old CMT version which had disappeared. This was causing a
+problem since the ${} syntax is not understood by nmake</li>
+	  <li class="new">add
+a command "cmt show use_paths &lt;target&gt;" to display all possible
+paths to the target package. This is useful to understand how a given
+package is reached, for instance when it is desired to cut the use
+relationship and make it private somewhere in the graph.</li>
 	  <li class="new">add a command "cmt show cycles" to display circular dependencies in the use graph.</li>
-	  <li class="new">provide a binary RPM for CMT itself (only for redhat 7.2 distribution). It is downloadable from the usual Download page and provide a complete installation of CMT (including make fragments, binary, etc..). It is a relocatable RPM (install it using the --relocate option). (See the install WEB page for complete notice)</li>
-	  <li class="new">Add an extended script to retrieve information about Linux version (cmt_linux_version.sh). It supports Redhat, Debian, Suse. It is used to compute the cmt_system_version macro (contributions from Clark McGrew and Wim Lavrijsen)</li>
-	  <li class="bug">The setup scripts for Windows now use %TEMP% instead of %HOMEDRIVE%%HOMEPATH% to store temporary files (contributions from Pere Mato and Florence Ranjard)</li>
-	  <li class="new">Add the --public and --private global options for cmt commands, to control whether the use graph traverses or not the private sections:
-<pre>
-&gt; cmt --public ...
-</pre>
-       only sees public uses (default behavior for most commands but not for cmt broadcast and cmt show uses which traverse the private sub graphs)
-<pre>
-&gt; cmt --private ...
-</pre>   
-       forces the traversal of private subgraphs. This is already the default behavior for cmt show uses and for cmt broadcast, but can now be applied to any CMT command.</li>
+	  <li class="new">provide
+a binary RPM for CMT itself (only for redhat 7.2 distribution). It is
+downloadable from the usual Download page and provide a complete
+installation of CMT (including make fragments, binary, etc..). It is a
+relocatable RPM (install it using the --relocate option). (See the
+install WEB page for complete notice)</li>
+	  <li class="new">Add an
+extended script to retrieve information about Linux version
+(cmt_linux_version.sh). It supports Redhat, Debian, Suse. It is used to
+compute the cmt_system_version macro (contributions from Clark McGrew
+and Wim Lavrijsen)</li>
+	  <li class="bug">The setup scripts for
+Windows now use %TEMP% instead of %HOMEDRIVE%%HOMEPATH% to store
+temporary files (contributions from Pere Mato and Florence Ranjard)</li>
+	  <li class="new">Add
+the --public and --private global options for cmt commands, to control
+whether the use graph traverses or not the private sections:
+<pre>&gt; cmt --public ...
+</pre> only sees public uses (default behavior for most commands but
+not for cmt broadcast and cmt show uses which traverse the private sub
+graphs)
+<pre>&gt; cmt --private ...
+</pre> forces the traversal of private subgraphs. This is already the
+default behavior for cmt show uses and for cmt broadcast, but can now
+be applied to any CMT command.</li>
 	  <li class="bug">A global pattern specifying private sections did not really generate private definitions</li>
 	</ul>
@@ -837,4 +1414,4 @@
     <hr>
     <address><a href="mailto:arnault@lal.in2p3.fr">Christian Arnault</a></address>
-  </body>
-</html>
+  
+</body></html>
Index: CMT/v1r25-branch/mgr/CMT.pacman
===================================================================
--- CMT/v1r25-branch/mgr/CMT.pacman	(revision 669)
+++ CMT/v1r25-branch/mgr/CMT.pacman	(revision 671)
@@ -2,4 +2,5 @@
 # Copyright Christian Arnault LAL-Orsay CNRS
 # arnault@lal.in2p3.fr
+# Modified by Grigory Rybkin
 # See the complete license in cmt_license.txt "http://www.cecill.info". 
 #-----------------------------------------------------------
@@ -12,9 +13,13 @@
 
 {
-    platformGE ('Linux') ; downloadUntar ('http://www.cmtsite.org/<version>/CMT<version>Linux-i686.tar.gz', 'CMTBASE')
+    platformGE ('Linux') ; downloadUntar ('http://www.cmtsite.net/<version>/CMT<version>Linux-i686.tar.gz', 'CMTBASE')
   OR 
-    platformGE ('Cygwin') ; downloadUntar ('http://www.cmtsite.org/<version>/CMT<version>CYGWIN_NT-5.1-i686', 'CMTBASE')
-  OR
-    downloadUntar ('http://www.cmtsite.org/<version>/CMT<version>.tar.gz', 'CMTBASE')
+    platformGE ('darwin') ; processor ('i386') ; downloadUntar ('http://www.cmtsite.net/<version>/CMT<version>Darwin-i386.tar.gz', 'CMTBASE')
+  OR 
+    platformGE ('darwin') ; processor ('x86_64') ; downloadUntar ('http://www.cmtsite.net/<version>/CMT<version>Darwin-i386.tar.gz', 'CMTBASE')
+#  OR 
+#    platformGE ('darwin') ; processor ('Power Macintosh') ; downloadUntar ('http://www.cmtsite.net/<version>/CMT<version>Darwin-PowerMacintosh.tar.gz', 'CMTBASE')
+  OR 
+    downloadUntar ('http://www.cmtsite.net/<version>/CMT<version>.tar.gz', 'CMTBASE')
 }
 
@@ -22,8 +27,7 @@
 shellOutputContains ('./INSTALL', 'CMT installation terminated')
 {
-  shellOutputContains ('. setup.sh; cmt version', '<version>') 
-    OR shell ('. setup.sh; gmake') 
+  shellOutputContains ('. ./setup.sh; cmt version', '<version>') 
+    OR shell ('. ./setup.sh; make') 
 }
-shellOutputContains ('. setup.sh; cmt version', '<version>')
+shellOutputContains ('. ./setup.sh; cmt version', '<version>')
 cd ()
-
