date
file
comment
2002-05-29 src/cmt_database.cxx  
  src/cmt_database.h  
  src/cmt_project.h
class Project
 
  src/cmt_project.cxx
Project
Introduce Project management  
  mgr/requirements Define the default project CMT  
  src/cmt_parser.h
enum
 
  src/cmt_parser.cxx
select
  Introduce apply_tag statements Introduce first iteration on project management  
  src/cmt_symbol.cxx
action
replace direct access to member of tag objects by accessor functions.  
  src/cmt_tag.cxx
add
 
  src/cmt_tag.h
class Tag
  Clean up the for private members only introduce action_apply to activate a tag from a requirements file introduce tag expressions -> this defines primary tags versus computed ones. Selection is either obtained from m_selected for primary tags or computed from operands otherwise. so far only AND expressions are available.    
2002-05-28 src/cmt_symbol.cxx
select_last
Make use of Tag::is_selected  
  src/cmt_tag.cxx
is_selected
 
  src/cmt_tag.h
class Tag
Add and_operands for defining tags from a bool expression of primary tags. Move selected to private area to ensure usage of is_selected which may compute the selection state from operands. The embedded state is now reserved to primary tags.    
  src/cmt_awk.cxx
class Parser
Replace the basic parsing engine by the local Parser class. It takes care of both EOL styles (Unix and Win) and of trailing backslashes for continuations.  
  src/cmt_awk.h
class Awk
Added a function inc_line_number to increment the line number from the external text parser.  
  src/cmt_cvs.cxx
filter
Added debug messages  
  src/cmt_parser.cxx
do_awk
 
  src/cmt_parser.h
enum
Added action_awk
  src/cmt.h
class Cmt
Added do_awk function for testing the Awk operator.    
2002-05-27 doc/todo.html Adding entries    
2002-05-24 src/cmt_cvs.cxx
class CvsImplementation
fix few problems with no_version_directory.    
2002-05-23 src/demo/scenario.awk Adapt to handle without_version_directory style  
  src/demo/demo1.cmt fix a typo  
  src/cmt_parser.cxx
parse_requirements
Fixing bug on private macros for without_version_directory style  
  mgr/Makefile
demo
Improving the demo scenario manager    
2002-05-22 doc/download.html  
  doc/CMTDownload.html  
  src/cmt_version.h
CMTVERSION
preparing tagging for v1r13...  
  src/cmt_use.h
class Use
new helpers  
  src/cmt_use.cxx
class use_action_iterator
re-design the scope hiding for private uses (was buggy for first level private uses)
  src/cmt_use.cxx
reach_package
structuring style
  src/cmt_use.cxx
get_full_path
new helper for centralizing the full package path computation
  src/cmt_use.cxx
reduce_path
new helper to normal form with $ROOT
  src/cmt_use.cxx
get_paths
add debug prints
  src/cmt_use.cxx
show_sub_uses
structuring style  
  src/cmt_system.h
class CmtSystem
 
  src/cmt_system.cxx
reduce_file_separators
helper to reduce multiple file separators into one
  src/cmt_system.cxx
is_package_directory
structuring style  
  src/cmt_pattern.cxx
apply
add debug prints  
  src/cmt_parser.h
enum
Add CmtStructuringStyle options  
  src/cmt_parser.cxx   Introducing support for structuring style. m_current_structuring_style global variable
  src/cmt_parser.cxx
scan_path
 
  src/cmt_parser.cxx
scan_package
 
  src/cmt_parser.cxx
run
 
  src/cmt_parser.cxx
PackageCollector::run
 
  src/cmt_parser.cxx
configure
calling configure_current_structuring_style
  src/cmt_parser.cxx
configure_current_package
 
  src/cmt_parser.cxx
configure_current_structuring_style
new method
  src/cmt_parser.cxx
do_broadcast
use Use::get_full_path
  src/cmt_parser.cxx
do_config
 
  src/cmt_parser.cxx
do_create
 
  src/cmt_parser.cxx
do_help
 
  src/cmt_parser.cxx
do_lock
suppress unused local variable
  src/cmt_parser.cxx
do_remove
 
  src/cmt_parser.cxx
do_show_macros
add pattern for selection instead of default '*'
  src/cmt_parser.cxx
do_show_sets
idem
  src/cmt_parser.cxx
do_unlock
suppress unused local variable
  src/cmt_parser.cxx
get_current_strategy
new method
  src/cmt_parser.cxx
install_cleanup_scripts
install cleanup scripts on windows
  src/cmt_parser.cxx
load
 
  src/cmt_parser.cxx
parse_arguments
re-number argument array
  src/cmt_parser.cxx
parse_arguments
support arguments for cmt show macros
  src/cmt_parser.cxx
parse_arguments
support arguments for cmt show sets
  src/cmt_parser.cxx
parse_arguments
-with_version_directory option
  src/cmt_parser.cxx
parse_arguments
-without_version_directory option
  src/cmt_parser.cxx
parse_requirements
 
  src/cmt_parser.cxx
parser
support arguments for cmt show macros
  src/cmt_parser.cxx
parser
support arguments for cmt show sets
  src/cmt_parser.cxx
print_context
use Use::get_full_path
  src/cmt_parser.cxx
print_macros
selection pattern (reg. expression) on symbols
  src/cmt_parser.cxx
reach_current_package
 
  src/cmt_parser.cxx
set_standard_macros
add getting pwd
  src/cmt_parser.cxx
set_standard_macros
structuring style  
  src/cmt_generator.cxx  
  src/cmt_generator.cxx
SourceFile::set
use CmtSystem::reduce_file_separators
  src/cmt_generator.cxx
prepare_use_context
idem
  src/cmt_generator.cxx
prepare_use_context
use Use::get_full_path
  src/cmt_generator.cxx
set_full_name
idem
  src/cmt_generator.cxx
build_make_setup
idem  
  src/cmt_fragment.cxx  
  src/cmt_fragment.cxx
print
use Use::reduce_path factorization
  src/cmt_fragment.cxx
locate
use Use::get_full_path factorization
  src/cmt_fragment.cxx
locate
Support structuring style options  
  src/cmt_cvs.cxx   + need cmt.h for accessing structuring style + support for structuring style  
  src/cmt.h
class Cmt
  Adding support for structuring style do_show_macros now accepts arguments do_show_sets now accepts arguments print_macros now accepts a pattern for selecting symbols  
  src/demo/tprivate.cmt Scenario for testing private uses and -no_auto_imports  
  src/demo/demo1.cmt Scenario for the general test/demo sequence.  
  src/demo/scenario.awk Add a script for installing scenarios. This script can - create packages - install text files relatively to the packages.  
  mgr/Makefile
demo
Replace the copy operations for the demo targets by an awk-based mechanism (only for Unix -> keep old mechanism for Windows). The scenario.awk script is able to create packages and install text files into the newly created packages.  
Add a target (a scenario) for testing private uses and -no_auto_imports  
Add an help target describing all special targets.  
  fragments/constituents_header
first
Differentiate setup.make with the package name when $(bin) is common.    
2002-05-17 doc/todo.html Adding a web page for ToDo list, and bug reports.  
  src/cmt_parser.cxx
install_test_setup_scripts
 
  src/cmt_parser.cxx
install_test_cleanup_scripts
Fix the bug to "source setup" standalone with a current directory outside the package itself.    
2002-05-15 src/cmt_version.h
CMTVERSION
Preparing the new tag v1r12p20020515  
  doc/CMTDoc.html Upgrade the documentation.  
  src/setup.tcsh  
  src/setup.zsh Add all_tags to the list of know show options  
  src/cmt_tag.cxx
show_definition
 
  src/cmt_tag.h
class Tag
Added Tag::show_definition (unfiltered show method wrt the selected state)  
  src/cmt_parser.cxx
do_help
Implement the new cmt show all_tags command.  
  src/cmt.h
class Cmt
Added Cmt::do_show_all_tags ()  
  src/cmt_parser.h
enum
Added action_show_all_tags  
  mgr/requirements remove -I$(inc) from default value of ccomp macro (no longer needed and has side effects)  
  src/cmt_use.cxx
add
Protect against null use pointer when not found.  
  src/cmt_tag.cxx
action
do increase the tag ref list when overridden. It used to be un-overridden...  
  fragments/constituents_trailer
clean
add a semi-colon between the two shell commands.  
  src/cmt_system.cxx
create_symlink
Explicit .c_str() in system calls.  
  doc/table.html setup a direct URL to CVSWeb rather than through an intermediate page    
2002-04-12 doc/CMTDoc.html  
  src/setup.zsh  
  src/setup.tcsh  
  src/cmt_parser.cxx
do_help
 
  src/cmt.h
class Cmt
 
  src/cmt_parser.h
enum
introduce action_show_all_tags do display all defined tags (while action_show_tags only shows all active tags)  
  fragments/constituents_trailer
clean
typo in the clean target.    
2002-04-11 src/cmt_parser.cxx
print_clean
Suppress the unset of CMTCONFIG    
2002-04-10 fragments/library  
  fragments/library_no_share Suppress the experimental change for erasing the object files after filling the library    
  src/cmt_version.h preparing tagging for v1r12      
  mgr/requirements Adapt to Darwin  
  src/cmt_symbol.cxx
action
 
  src/cmt_use.cxx
action
 
  src/cmt_use.h
class Use
Introduce m_has_native_version  
  mgr/requirements Add standard $(library_prefix) and $(library_suffix) macros  
  mgr/cmt_make_shlib_common.sh
temp_shlib
Set verbose mode to the linker command and control it through the QUIET macro. Fix the temporary expansion directory  
  mgr/cmt_make_shlib_common.sh
temp_shlib
 
  fragments/library_header  
  fragments/cleanup_library Add standard $(library_prefix) and $(library_suffix) macros  
  fragments/constituents_trailer
makefilesclean
 
  fragments/constituent remove specific makefile fragments for the constituents (instead of *.make)  
  fragments/library_no_share  
  fragments/library erase *.o files after filling the library  
  src/cmt_use.h
class Use
Add use::sub_use_auto_imports to save specifications on sub uses. Add Use::set_auto_imports to possibly promote auto_imports to sub uses when it is changed from Off to On.  
  src/cmt_parser.h
enum
 
  src/cmt_pattern.cxx
show_all_applied_patterns
 
  src/cmt_pattern.h
class Pattern
adding Pattern::show_all_applied_patterns ()
  src/setup.tcsh  
  src/setup.zsh  
  src/cmt_parser.cxx
do_help
 
  src/cmt.h
class Cmt
Adding Cmt::do_show_applied_patterns for the new command "cmt show applied_patterns"    
2002-04-04 src/cmt_use.cxx
add
Protect against duplicated registration of current_use.  
  src/cmt_parser.cxx
install_setup_scripts
Append an empty line at the end of the generated setup script (problem on some shells)  
  src/cmt_parser.cxx
do_create
 
  src/cmt.h
class Cmt
Change the signature of the do_create function to receive its arguments from the "arguments" list rather than changing current_package etc...  
  src/Makefile.header Add a systematic config target (for backward compatibility)  
  fragments/constituents_trailer
binclean
added the binclean target to completely remove the binary directory at once.  
  fragments/make_header  
  fragments/constituents_header  
  fragments/nmake/make_header
CMTEXTRATAGS
 
  fragments/nmake/constituents_header
CMTEXTRATAGS
Remove the settings of CMTCONFIG    
2002-03-22 src/cmt_symbol.cxx
suppress_OS_delimiters
operate on %...% patterns only on Windows machines.    
2002-03-20 mgr/Makefile
Atlas
Suppress HP rebuild for Atlas group  
  src/cmt_cvs.cxx
filter
Improve the recursive passes and handle the new qualifiers of the use statements.  
  fragments/cleanup_header
clean
Fix bad insertion of the .DEFAULT target  
  src/cmt_symbol.cxx
suppress_OS_delimiters
Introduce this new function to ensure that only $() syntax is used in tag makefiles (ie suppress ${} and %% syntaxes)
  src/cmt_symbol.cxx
show_macro
apply this new function for action_build_tag_makefile  
  src/cmt_generator.cxx
reset
Do not generate the Visual directory on non-windows machines  
  fragments/group
clean
Suppress one echo on gmake clean    
2002-03-14 src/cmt_parser.cxx
set_standard_macros
Cleanup management of m_current_tag    
2002-03-07 src/cmt_parser.cxx
print_context
Suppress the automatic settings of CMTEXTRATAGS  
  src/Makefile.header Do not change CMTCONFIG
  src/NMakefile.header Do not change CMTCONFIG    
2002-02-27 fragments/jar Adding removal of jar file for clean target  
  src/cmt_use.cxx
show_sub_uses
show no_auto_imports status  
  src/cmt_parser.cxx
reach_current_package
reapply global pattern at once until side effects are solved in user projects.  
  fragments/jar Apply an old fix to Unix fragments (was applied to Windows only)    
2002-02-26 src/cmt_use.cxx
move_to
select_alternate must be applied after reach_package for searches against an absolute path or against the current directory.    
2002-02-25 fragments/cleanup_header
clean
Add default action  
  src/Makefile.header
common_target
Remove debug print  
  src/cmt_parser.cxx
parse_requirements
Apply global patterns right after parsing a requirements file, and only considering the Use context, one at a time (rather than applying all global patterns to all Uses at once after reading all requirements file)  
  src/cmt_pattern.cxx
apply_all_globals
 
  src/cmt_pattern.h
class Pattern
Add a method to apply all global patterns in the context of only one Use object.    
2002-02-24 src/cmt_system.cxx
command_separator
New method for getting the shell command separator (& or ;)  
  src/cmt_cvs.cxx
class CvsImplementation
Add CmtSystem::command_separator() between cvs co of each branch (instead of newlines).  
  src/cmt_system.cxx
has_device
Accepts the \\xxx\ syntax as a device name in file paths on windows.  
  src/cmt_parser.cxx
configure_cmt_path
Hide show_set action when recursive definition of CMTCONFIG  
  src/cmt_use.cxx
need_new
Some optimizations  
  src/cmt_use.cxx
move_to
Exchange the priority of CMTPATH versus version when selecting the best version.  
  src/cmt_parser.cxx
use_cmt
Hide CMTDEBUG while parsing the requirements of CMT itself    
2002-02-20 src/cmt_parser.cxx
do_broadcast
Fix a bug for setting the style the the Current use. This effect was induced by the new mechanism for constructing the Current Use object, now a singleton of the Use class.    
2002-02-07 src/cmt_use.cxx
change_path
Add a m_located flag in Use class to record the success of the package localization. Test against this info instead of real_path to allow for package found in current directory (where real_path stays empty)  
  src/cmt_parser.cxx
configure
   
  src/cmt_use.cxx
show_sub_uses
Ensure that the cmt show uses displays the correct scoping information for uses and sub-uses. cmt show uses also displays the full tree even when it contains private uses.    
2002-02-06 src/cmt_use.cxx
class use_action_iterator
Install UseContext to manage proper propagation of -no_auto_imports    
2002-01-30 src/cmt_parser.cxx
parse_arguments
Fix the bug of private environment variables which could not be set even within the package (bug in the management of the -pack= -version= -path= options).  
  src/cmt.h Install all attributes of the Cmt class as private attributes, and make them follow the convention : m_xxx. This implies to install few accessor methods.    
2002-01-29 src/cmt_use.cxx
class use_action_iterator
The private uses are accessed for - broadcast operations - show uses operations  
  src/cmt_symbol.cxx
action
Expands the specified script name for the setup_script and cleanup_script statement. Protect against empty script names.    
2002-01-11 src/Makefile.header Reorganize basic Makefile fragment generation to permit better support for parallel & concurrent builds. Mimize also the number of makefile fragments generated and kept : only $(tag).make remains in ../cmt . All other are thrown away after use.  
Make those changes a branch "parallelbuilds"      
2002-01-09 src/NMakefile.header
tags
Apply the fix for tags onto NMakefile.header    
2002-01-07 src/Makefile.header
tags
Attempt to fix the continuity break between v1r9 and v1r10, by re-installing the possibility to use gmake tag=<...> rather than having to use source setup.[c]sh -tag=<...>  
(This fix has to be tested before any validation)    
2001-11-26 Tagging v1r10p20011126    
  src/Makefile.header tag is now ${CMTCONFIG} and tags ${CMTEXTRATAGS}  
  mgr/requirements Provide the macro tags as ${CMTEXTRATAGS}  
  src/cmt_tag.cxx Various changes in strategy for tags: - tag inclusion (defined by the "tag" statement) transmits the priority. - tag selection can be discarded by exclusion specifications. Exclusion qualifies a set of contradictory tags. Contradictory tags will be selected according to their priority or to their declaration order in case of equal priority.  
  src/cmt_parser.h
enum Priority
Change the priority list: Arguments get highest priority then CMTCONFIG then user tags (those defined in requirements)  
  fragments/make_setup produce uses.make and tags.make  
  src/cmt_parser.cxx
parse_arguments
 
  src/cmt.h
class Cmt
Suppress the mechanism of primary_tag. CMTCONFIG is enough.    
2001-11-21 src/cmt_symbol.cxx
add_value_to_list
fix protection on value_list.size () to start at 1 (not at 2)  
  src/cmt_symbol.cxx
build
Reflective values of Sets should consider previous setenv settings.  
  src/cmt_generator.cxx
build_dependencies
Using ../$(tag) for output base of the dependencies fragment rather then Cmt::current_tag  
  src/Makefile.header
CMTPRIMARYTAG
tag=... argument of gmake will override CMTPRIMARYTAG. However internal tag macro is only replaced with ${CMTCONFIG}  
  fragments/make_setup
config
create a tags.log (for cmt show tags)  
  mgr/cmt_make_shlib_common.sh Add the ${lib} prefix to the temporary expansion directory. Fix a bug in sed filter for all module files.  
  src/cmt_parser.cxx
configure_tags
Add a protection against absence of CMTPRIMARYTAG  
  src/cmt_system.cxx
create_symlink
 
  src/cmt_system.h
class CmtSystem
Adding the create_symlink function.  
  src/cmt_parser.cxx
do_build_library_links
Using direct system calls to create symlinks.    
2001-11-13 Tagging v1r10p20011113    
  mgr/requirements  
  src/constituents.make
build_library_links
Define macros for build_library_links and remove_library_links  
  fragments/make_setup
config
Add build_library_links target  
  src/cmt_parser.cxx
set_standard_macros
Fix bad production of use_includes when private is used.  
  src/cmt_parser.cxx
do_broadcast
Fix -begin= error    
2001-11-08 src/cmt_version.h tagging v1r10  
  src/cmt_system.cxx
add_cmt_path
Get cwd alias to each selected path.  
  src/cmt.h
class Cmt
Add cmt_path_cwd vector of all CMTPATH entries normalized to getcwd.  
  src/cmt_generator.cxx
java_file_action
 
  src/cmt_generator.cxx
proto_file_action
 
  src/cmt_generator.cxx
module_file_action
Pass reference to the constituent in order to transmit constituent variables to the fragment.  
  src/cmt_parser.cxx
set_standard_macros
Insert a space character for all generated macro_append operations.  
  src/cmt_fragment.cxx
xxxcopy
 
  src/cmt_fragment.h
class Variable
Adding the expansion of fragments variables using both the ${} syntax AND the $() syntax.  
  src/cmt_tag.h  
  src/cmt_tag.cxx
is_selected
Change the Tag::selected attribute to bool.    
2001-11-07 src/cmt_symbol.cxx
build
Implement the possibilty to have reflexive asignment to symbols: when a symbol value is exactly specified (from set, macro or path statements) using $() or ${} or %% then the old value is preserved for all corresponding selectors.  
  src/cmt_parser.cxx
set_standard_macros
Re-activate -import options (that had been discarded!)  
  src/cmt_use.cxx
add
Generate an error when a package is not found (the error was only generated at "cmt show uses")  
  src/cmt_constituent.cxx
show
Display -import options  
  fragments/dependencies Force checking $(bin)  
  fragments/constituent Adding some printout to display when constituent fragment is rebuilt  
  src/cmt_parser.cxx
set_standard_macros
Re-validate -no_auto_imports option for use and -import options for constituents.    
2001-11-06 src/cmt_generator.cxx
build_document_makefile
protect against missing files (causing infinite loops in Make)    
2001-11-05 mgr/Makefile
application_suffix
Define application_suffix in the CMT's Makefile  
  src/cmt_parser.cxx
print_context
Do not generate ROOT and CONFIG for cmt_standalone packages.  
  mgr/requirements Reomving the cmt_selector.cxx source file.  
  src/constituents.make Force the dirs target for build_library_links  
  src/cmt_parser.cxx
restore_all_tags
Get the value of CMTPRIMARYTAG to configure Cmt::primary_tag.  
Leave unchanged the primary_tag and the extra_tags except if overridden through the -tagxxx= options  
  src/cmt_parser.h
enum
Add PrioritySite in the list of possible priorities.  
  src/cmt.h
class Cmt
Add the restore_all_tags function. Add the extra_tags attribute . Change the strategy of tag persistency:  
o CMTPRIMARYTAG always contains what had been specified using the -tag= option,  
o CMTEXTRATAGS contains what had been manipulated by -tag_add= and -tag_remove= options.  
o CMTCONFIG is setup independently of the primary tag.  
  src/Makefile.header
primary_tag
Propagate tags using CMTPRIMARYTAG instead of CMTCONFIG (except when CMTPRIMARYtAG is not yet defined)  
  src/cmt_constituent.cxx
parse
Fix the word parsing for constituent specification...    
2001-11-02 src/cmt.h  
  src/cmt_database.cxx  
  src/cmt_database.h  
  src/cmt_parser.cxx  
  src/cmt_parser.h  
  src/cmt_selector.cxx  
  src/cmt_selector.h  
  src/cmt_symbol.cxx  
  src/cmt_symbol.h  
  src/cmt_tag.cxx    
  src/cmt_tag.h   Suppressing cmt_selector objects (only tags are needed!!) Add tag_exclude keyword for building tag-exclusions.    
2001-10-31 mgr/requirements Don't need to explicitly declare make_fragment headers (automatically declared in the -header= option)  
  src/cmt_symbol.cxx
print_clean
Cleaning up path variables may be either unsetenv when the result is empty or setenv if not.  
  fragments/application_launcher evolution  
  src/cmt_parser.cxx
configure_tags
protect against empty declaration of CMTCONFIG : by default will take uname...    
2001-10-30 src/cmt_symbol.cxx
clean
Implement the cleanup correctly, with in particular the cleanup of the path variables.  
  src/cmt_parser.cxx
print_context
improve output of cmt show tags  
  src/cmt_symbol.h
class Symbol
Add clean_macro_value for building the result of the clean operations induced by this symbol (only implemented for path_xxx)  
  src/cmt_parser.cxx New post-context requirements file : user_context in addition to home package. Added Use* use arguments to configure_xxx functions to transfer.  
  src/cmt_parser.cxx
configure_cmt_path
Attempt to make use of CMTPATH definitions from requirements files.  
  src/cmt_parser.cxx
configure_config_selector
Install context information for tag creation  
  src/cmt_parser.cxx
configure_home
Attempt to make use of CMTHOME definitions from requirements files.  
  src/cmt_parser.cxx
configure_user_context
Install user_context management  
  src/cmt_parser.cxx
configure_site_selector
Get CMTSITE from requirements as well  
  src/cmt_parser.cxx
configure_tags
Add a configure_tags finction to retreive tags from all possible sources: CMTCONFIG (from req) then CMTPRIMARYTAG then CMTCONFIG then CMTBIN then append all CMTEXTRATAGS.  
  src/cmt_parser.cxx
parse_arguments
fix parsing bug for the -home= argument  
  src/cmt_parser.cxx
parser
Set action_show_path to be recursive  
  src/cmt_parser.cxx
parser
Call the HOME package just after using CMT. Call the use_context package just after reaching the current package.  
  src/cmt_parser.cxx
print_clean
reformat the output (with newlines). Clear CMTPRIMARYTAG CMTEXTRATAGS and CMTCONFIG.  
  src/cmt_parser.cxx
print_context
set CMTPRIMARYTAG CMTEXTRATAGS and CMTCONFIG from the current definitions.  
  src/cmt_parser.cxx
set_standard_macros
Rationalize the production of current_tag  
  src/cmt_parser.cxx
use_user_context_requirements
   
  src/cmt_use.cxx
show_all
Display new user_context package  
  src/cmt_use.cxx
class use_action_iterator
query function ok() includes both home_package and user_context_package  
  src/cmt_use.cxx
reach_package
special treatment for home_package and user_context_package since they do not follow the standard location scheme.  
  src/cmt_use.cxx
add
Improve the detection of packages not found.  
  src/cmt_tag.cxx
unmark
Reset the use pointer  
  src/cmt_tag.cxx
action
Install the use origin.  
  src/cmt_tag.cxx
add
Install the use origin and the context information. It will be reset to the new context in case of re-definition. Suppress various excessive debug printouts.  
  src/cmt_tag.cxx
clear
clear use and context new information  
  src/cmt_tag.cxx
show
Improve the display of tags with hierarchical display of subtags and context information.  
  src/cmt_tag.h
class Tag
Added Use* use parameter to action and add methods. Store a pointer to the package (Use*) who originated the definition, and a context string to qualify the definition.  
  src/cmt_system.h
class CmtSystem
 
  src/cmt_system.cxx
add_cmt_paths_from_text
Factor out the code to register a set of CMTPATH entries, with the context information.  
  src/cmt_system.cxx
is_home_package
Add is_home_package and is_user_context_package query functions.  
  src/cmt_system.cxx
get_cmt_site
Default site is empty (instead of LAL)  
  src/cmt_symbol.cxx
print_clean
Suppress some obsolete print_tabs () formattings. Apply unset instead of unset for aliases as well.  
  src/cmt_symbol.cxx
action
Add special treatment for CMTXXX environment variables : the new setting has to be taken into account as soon as it is parsed.  
  src/cmt_selector.cxx
create
remove some debug code.  
  src/cmt_generator.cxx
build_default_makefile
Produce only Makefile on Unix and only NMake on Windows.  
  mgr/requirements Renaming new script_launcher fragments into application_launcher  
  src/cmt.h
class Cmt
Added Use* use arguments to configure_xxx functions to transfer.  
Added use_user_context_requirements () to include post-context requirements file.  
Added the static value primary_tag to store the primary tag.    
  src/cmt_generator.cxx
build_default_makefile
Create Makefile only un Unix and NMake only on WIN32    
2001-10-24 src/cmt_parser.cxx
parser
add the recursive property to action_show_path.  
  src/cmt_system.h
class CmtSystem
 
  src/cmt_system.cxx
get_user_context_package
 
  src/cmt_system.cxx
is_user_context_package
 
  src/cmt_use.cxx
add
 
  src/cmt_use.cxx
show_all
 
  src/cmt_use.cxx
class use_action_iterator
 
  src/cmt_use.cxx
reach_package
 
  src/cmt_use.cxx
add
 
  src/cmt_parser.cxx
configure
 
  src/cmt_parser.cxx
parser
 
  src/cmt_parser.cxx
parse_arguments
 
  src/cmt_parser.cxx
configure_user_context
 
  src/cmt.h
class Cmt
    Adding user_context equivalent of CMTHOME support for post requirements file. The corresponding env. var. is CMTUSERCONTEXT. The complete scheme for supporting PRE-parsed HOME requirements file is exactly copied to those POST-parsed files.  
  mgr/requirements  
  fragments/script_launcher_header  
  fragments/script_launcher  
  fragments/script_launcher_trailer Introduce a new document generator for launching scripts. The same convention as the check_application is reused, for pre-action, argument passing and post-action. Several scripts (specified in the source list of the document) can be executed in sequence.  
  src/cmt_use.cxx
class use_action_iterator
 
  src/cmt_system.cxx
is_home_package
 
  src/cmt_system.h
class CmtSystem
Add the is_home_package function to encapsulate the syntax of a HOME package (and apply it in Use::use_action_iterator)  
  src/cmt_symbol.cxx
action
Prepare specific actions when the parsed symbol is one of the CMTXXX standard symbols. So far CMTHOME -> re-configure home.  
  src/cmt_parser.cxx
parser
apply use_home_requirements right after reading CMT requirements file (ie. before reading current package)  
  src/cmt_parser.cxx
configure_home
understand the possible "set CMTHOME" declarations (but keep $CMTHOME)  
  src/cmt_parser.cxx
reach_current_package
* src/cmt_system.cxx
  src/cmt_parser.cxx
get_cmt_paths
Restore the automatic addition of "current package" in the CMTPATH list.  
  src/cmt_parser.cxx
parse_arguments
bad parsing of the -home=xxx argument        
2001-10-23 mgr/Makefile
demo
Need to add CMTPATH towards ${CMTROOT}/demo since CMTPATH to current package is no longer supported !!!  
  fragments/nmake/check_application
check
 
  fragments/nmake/cleanup_application  
  fragments/nmake/application_header  
  fragments/nmake/application  
  fragments/application  
  fragments/application_header  
  fragments/cleanup_application  
  fragments/check_application
check
 
  mgr/requirements Create a new standard macro "application_suffix" for making possible to change the .exe default suffix of applications    
2001-10-22 src/cmt_parser.cxx  
  src/cmt_system.cxx Suppress the automatic addition of current package's path into CMTPATH.  
  mgr/Makefile Change the method to rebuild cmt_dependencies by copying what is obtained from CVS. Rebuild it manually when needed.    
2001-10-19 fragments/make_setup
config
Creating uses.log needs to use an intermediate temporary file  
  src/setup.[c]sh Avoid re-definition of CMTCONFIG  
  src/cmt_use.cxx
add
temporarily discard the mecanism by which uses.log files are read before the requirements files.  
  src/cmt_system.cxx
is_version_directory
returns -1 for fields that were wildcarded  
  src/cmt_use.cxx
add
 
  src/cmt_use.cxx
need_new
 
  src/cmt_use.cxx
BestFitSelector::operate
Start the implementation of priority control between explicit use specification over wildcarded ..  
  src/cmt_parser.cxx
reach_current_package
Change the value of the CMTPATH for the current package once it has been reached (but before reading its requirements file)  
  src/cmt_parser.cxx
install_setup_scripts
(improvement) Add the transfer of arguments towards cmt.exe into setup.bat  
  src/cmt_system.cxx
get_cmt_paths
(bug fix) path_sources was not cleared as paths. Prepend "current path" to the path list under "current package".  
  src/cmt_parser.cxx
parse_arguments
(bug fix) Suppress enclosing quotes around cmt.exe arguments so that setup.bat can transmit arguments properly  
call setup.bat "-tag_add=a,b,c"    
2001-10-18 src/cmt_parser.cxx
set_standard_macros
Set current_tag to CMTBIN when in CMT itself (not complete yet)  
  src/cmt_generator.cxx
build_dependencies
Use CMTBIN for CMT itself (instead of current_tag) well this should be cured later on to ensure that current_tag is always set to CMTBIN for CMT itself  
  src/cmt_version.h
CMTVERSION
install v1r10 (not tagged yet)  
  mgr/cmt_system.sh Do not try to use AFS on Darwin and LynxOS.  
  src/setup.[c]sh Define CMTBIN as `uname` on Unix and CMTCONFIG as `cmt_system.sh`  
  src/cmt_symbol.cxx
show_macro
the trailing space must be added only for WIN32 !!    
2001-10-17 src/cmt_symbol.cxx
show_macro
add a trailing space on all macro definitions (to avoid problem of trailing backslash)  
  src/cmt_parser.cxx
set_standard_macro
remove the insertion of trailing spaces after the last backslash for WIN32/NMake  
  src/constituents.make
all
(bug fix) re-install the build_library_links action for the all target    
2001-10-11 src/cmt_version.h Tagging for v1r9p20011011  
  fragments/library (bug fix) transmit both -tag= and -tag_add= to cmt_make_shlib_common.sh    
  src/cmt_parser.cxx remove debug print options    
2001-10-10 src/cmt_parser.cxx
parse_arguments
fix problems in multiple tag management.  
converge in the question of HOME requirements file to support - no default - define the path to the HOME requirements file in ${CMTHOME}  
converge in the arguments for manipulating the extra tags -tag= -tag_add= -tag_remove=    
2001-10-03 src/constituents.make
makefilesclean
Make all action lists run in one single shell (ie. use ;\ everywhere)  
Make an explicit target for build_library_links Make it called before any group    
2001-10-02 src/cmt_awk.h
class Awk
add a state variable (m_continuation_allowed) which when true, take into account the trailing backslashes, so as to first accumulate continued lines into one. Add the allow_continuation method to base Awk class.    
2001-10-01 src/cmt_cvs.cxx
class CvsImplementation
Bug in checkout_from_requirements. Did not accept leading spaces on use statements.    
2001-09-27 src/cmt_version.h Tagging for v1r9p20010927  
  src/setup.zsh add the -begin option to the auto-expansion.  
  src/cmt_use.cxx
show_all
Visualize the HOME package when applicable.  
  src/cmt_system.cxx
get_home_package
(also do some formatting cleanup)  
  src/cmt_system.h
class CmtSystem
Adding get_home_package function to build the name given to the HOME package (provides the HOME requirements file)    
2001-09-26 src/cmt_parser.cxx
do_show_macro
Improving error detection on cmt show macro/set  
  doc/CMTDoc.html Improve the doc.  
  src/cmt_parser.cxx
print
produce the CMTEXTRATAGS environment variable, at setup time.
  src/cmt_parser.cxx
parse_arguments
take into account this new env.var. to retreive previous extra tags.  
  src/Makefile.header Add the CMTEXTRATAGS environment variable to propagate additional tags to Make.  
  fragments/make_setup  
  fragments/constituent  
  src/Makefile.header  
  src/constituents.make Adding -tag=$(tags) to all calls to cmtexe  
  src/cmt_system.h
class CmtSystem
Adding the bool testenv (name) function to test if an environment variable is defined or not.  
  src/cmt_parser.cxx
use_home_requirements
 
  src/cmt.h
class Cmt
Adding support of CMTHOME environment variable for specifying home requirements file. Default value will be ${HOME}. And can be overridden through the -home= global option. An explicit empty value (or set to eg. NONE) will discard the feature  
  src/cmt_parser.cxx
parse_arguments
Implement the tag list (comma separated list of extra tags) option -tag= to specify a list of tags to validate.    
2001-09-25 src/setup.csh fixed PATH settings (may accept a path with space characters eg. for Darwin)  
  mgr/cmt_system.sh Insert the knowledge of Darwin OS (Mac OS X). The default CMTCONFIG will be Darwin.  
  src/constituents.make
makefilesclean
Ensure that removal of makefile fragments is performed AFTER all cleanup uperations.  
  src/cmt_parser.cxx
use_home_requirements
Add the systematic search for a requirements file located in ${HOME}. This requirements file when found, is systematically parsed AFTER the requirements file of the current package has been parsed (so as to give the highest precedence to its statements)  
  src/cmt_parser.cxx
do_remove_library_links
Upgrade "remove library_links" to make it compliant to the algorithm used in "build library_links"    
2001-09-24 src/cmt.h
class Cmt
* src/cmt_parser.cxx (configure): Add a global configure_error variable to store the possible error produced during the configuration.
  src/cmt.h
install_test_setup_scripts
Add the -quiet option to the build temporary_name command used in setup script generation.  
  src/cmt_error.cxx
get_last_error
 
  src/cmt_error.h
class CmtError
Add get_last_error to retrieve the formatted text of the last error.  
  src/cmt_symbol.cxx
create
 
  src/cmt_symbol.cxx
all_print
 
  src/cmt_symbol.cxx
print
 
  src/cmt_symbol.cxx
build
 
  src/cmt_parser.cxx
select
Understand the "path" statement as a complete re-definition of a path-like variable.  
  src/cmt_system.cxx
add_cmt_path
 
  src/cmt_error.cxx
class Error
 
  src/cmt_error.h
class CmtError
Adding "path not found" error code, for CMTPATH checking.  
  src/cmt_pattern.cxx
const cmt_string& name
Return a warning for pattern not found.  
  src/cmt_error.h
class CmtError
 
  src/cmt_error.cxx
class Error
Adding "pattern not found" error code, for showing diagnostics in "cmt show pattern"  
  src/cmt_parser.cxx
do_show_macro
Return a warning for symbol not found.  
  src/cmt_error.h
class CmtError
 
  src/cmt_error.cxx
class Error
Adding "symbol not found" error code, for showing diagnostics in "cmt show macro/set"    
2001-09-19 mgr/cmt_make_shlib_common.sh return a status value which reflects the success or failure of the shared library build command.  
  src/cmt_cvs.cxx
class CvsImplementation
Discard the versions specified with wild cards in the recursive checkout.  
  src/cmt_triggers.cxx Protect the error messages in the trigger facility by Cmt::quiet.  
  src/cmt_constituent.cxx
class constituents_action_iterator
  temporarily discard the -triggers option.    
Tagging v1r9p2001p0824    
  mgr/cmt_system.sh Improve the reliability of the cmt_system.sh script against variants of "fs sysname"    
2001-08-23 src/cmt_cvs.cxx
class CvsImplementation
Since the tag filter is back to cmtcvs.cxx, the temporary forced tag filter in CMT is removed.  
  src/setup.zsh upgrade the completion for the broadcast command.  
  src/cmt_parser.cxx
do_broadcast
Make the -select independent of the -local or -global options. This is achieved by adding a "path_selections" list only managed by the -depth, -local -global modifiers while the "selections" list is managed by the -select modifier. The -exclude is left unchanged.    
2001-08-22 src/cmt_cvs.cxx
class CvsImplementation
Add the possibility to transmit a flag to the CVS pluggin, by inserting a /cmtcvstest in the module name to import. This will have to be decoded by the CVS pluggin itself !!    
2001-08-21 src/setup.tcsh Improving the tcsh completion mechanism (for cmt co).  
  src/setup.zsh Improving the zsh completion mechanism (for cmt co).  
  src/cmt_cvs.cxx
class CvsImplementation
Converging on HEAD management strategy...  
Starting implementation of the Atlas filter for CVS tags right into cmt_cvs.cxx rather than inside the CVS pluggin...    
2001-08-20 src/cmt_cvs.cxx
class CvsImplementation
Improving the recursive checkout process    
  src/cmt_cvs.cxx
class CvsImplementation
Reorganizing some CVS operations: - Apply the CMTCVSOFFSET env. variable to all actions (tags, branches, subpackages) - cleanup checkout algorithms (remove some obsolete variables) - add the -requirements option to checkout according to a set of use statements. - remove the inheritance to Awk of CvsImplementation to split the filter into 2 phases (implemented as 2 separated Awk derived classes) RecursivePass1 and RecursivePass2.    
2001-08-16 src/cmt_symbol.cxx
print
Bug in path_remove when the specified path variable only contained one item : the remove operation was not applied.    
2001-07-20 src/cmt_version.h setting the patch v1r9p20010720    
  src/cmt_regexp.h
cmt_regexp::begin
Add an optional pos argument to the begin method.  
  doc/CMTDoc.html Improvements, English cleanup...    
2001-07-18 src/cmt_cvs.cxx
CvsImplementation::checkout_package
Change the mechanism to get top files, since the " -d . " does not work anymore when CVSROOT is set to kserver!!!!    
2001-07-16 doc/CMTDoc.html Old PREFIX fragment variable has been replaced by FILEPATH long ago. This was not upgraded in the doc.  
  fragments/constituent The -f MUST be specified BEFORE other Make flags!!  
  fragments/dependencies Tried to comment out the dependencies to cmt_path.make etc... but it confused the dependencies fragment production. Uncomment it but need to understand the side effect.    
2001-07-09 src/cmt_generator.cxx
build_readme
Bug: the VERSION variable was not used for installing the readme_trailer (although the documentation was mentioning it)    
2001-07-04 src/cmt_version.h setting the patch v1r9p20010704    
2001-07-02 fragments/dependencies Cleaning some old debug printouts.  
  src/cmt_cvs.cxx
class CvsImplementation
Bug in replacing the wild card expression. v5r* has to be replaced by v5r0 while v5* has to be replaced by v5 in case no matching tag exists in the CVS repository. Other bug : All split operations should be performed against " \t" (include tab character)    
2001-06-29 src/cmt_cvs.cxx
class CvsImplementation
Final Validation of the change in the implementation of the m_installed stack used to avoid recursion due to dependency cycles.    
2001-06-22 src/cmt_cvs.cxx
class CvsImplementation
doing some optimizations for the big checkout operations.  
  src/cmt_parser.cxx
do_config
Remove .[n]make files also from the binary directory.  
  src/cmt_cvs.cxx
class CvsImplementation
Always fetch the cmt branch at HEAD even if the checkout operation is applied to a required tag (temporary feature).    
2001-06-18 src/cmt_cvs.cxx
class CvsImplementation
insert a space between top tags and other tags.  
  mgr/cmt_make_shlib.bat Write extra options received through arguments into a temporary option file, used by @ to resolve line-too-long prolems.  
  fragments/nmake/cpp_library  
  fragments/nmake/cpp   Add the /Tp qualifier for allowing non-standard file suffixes.    
2001-06-05 src/cmt_use.cxx
class use_action_iterator
Default to the -no_auto_import was to keep the most recent specification. Change this to always request auto_import by default, (unless otherwise specified)    
2001-06-01 src/cmt_parser.cxx
do_broadcast
Bug fix in do_broadcast: the -begin option wrongly implied the -global option.    
2001-06-13 src/cmt_cvs.cxx
class CvsImplementation
Improving the strategy for getting version tags from the repository: o If a request specifies a tag which is not applied to the requirements file, the specified tag is used to create the version directory but the HEAD is used in the repository. o CvsImplementation::show_cvs_infos () : stores all received infos into xxx_info corresponding local properties. Thus this method is only called once per package. o Error messages are really obtained from the error_info field.    
2001-05-30 src/cmt_generator.cxx
build_document_makefile
 
  src/cmt_system.cxx
get_dot_suffix
fix bug for file_names without any suffix  
  src/cmt.h & src/cmt_parser.cxx
set_standard_macros
Add a state standard_macros_done to protect against multiple calls to set_standard_macros.    
2001-05-28 src/cmt_cvs.cxx
class CvsImplementation
display the tags in a one-per-line basis instead of space separated when doing cmt cvstags.  
  src/cmt_use.cxx
operate
Make the version selector operator a little bit more quiet...    
2001-05-25 mgr/Makefile
demo
improve the gmake check action in the demo target.  
  src/cmt_use.cxx
fill_macro_all
build use_xxx standard macros using macro_append instead of macro.    
2001-05-22 src/cmt_parser.cxx
do_broadcast
Fix the default (-local) option to act as -depth=1. Improve some error messages.    
2001-05-21 src/setup.bat Improved skeleton for setup.bat. Base it on CMTBIN rather than on CMTCONFIG. Do not override CMTCONFIG if defined by the user. Do not care about PATH for Visual tools.  
  mgr/install.mak change the strategy for building the setup.bat script for CMT itself at INSTALL time. Now copy ..\src\setup.bat skeleton.  
  mgr/requirements Fix WIN32/VisualC tag definitions and PATH settings for cleaner handling of default tag overriding.  
  src/cmt_use.cxx
operate
Implement the algorithm for using aliases to alternate version specification in uses.    
-> Tag CMTv1r9p20010521  
2001-05-18 src/cmt_use.cxx
show_sub_uses
Start the implementation of version_alias and path_alias for equivalencing two version naming policies.  
  src/cmt_cvs.cxx
class CvsImplementation
Adding the -o offset option to cmt checkout for specifying a global offset to the base CVS repository. This offset will be prepended to all modules during the various CVS operations.  
the m_offset attribute is added to the CvsImplementation class.  
  src/cmt_cvs.cxx
class CvsImplementation
Improve protection against CVS modules not found.  
  src/cmt_cvs.cxx
class CvsImplementation
Added the --help option the cmt checkout.    
2001-07-10 mgr/requirements add the -tag=$(tag) option to the build_dependencies macro.  
  fragments/dependencies take the improvements into account.  
  src/cmt_generator.cxx
build_dependencies
Improve the dependency builder: re-generate all entries of the _dependencies.make that are missing from the complete source list (thus regenerate it when it is empty). Optimize the file scan for getting the new source list.  
  src/cmt_parser.cxx
do_build_dependencies
Dynamically shifts arguments of the build dependencies command to keep only the new-source-list. The complete command being "cmt build dependencies "  
  src/cmt_parser.cxx
do_config
drop all makefile fragments from the mgr/cmt directory AND from the binary directory.    
Moving to v1r8      
  src/cmt_deps_builder.cxx istream& input,   const cmt_string& dir_name, int current_path_index, const CmtSystem::cmt_string_vector& include_paths, const CmtSystem::cmt_string_vector& substitutions, CmtSystem::cmt_string_vector& all_deps,
  CmtSystemcmt_string_vector& deps Augmented local internal line buffer (from 1024 to 16384).  
  doc/CMTDoc.html document the new _root macro  
  src/cmt_parser.cxx
set_standard_macros get_best_form
Define a new set of standard macros using the pattern _root similar to ROOT except that this new definition uses the get_best_form, with a relative path to the package. The ROOT macro is restored to the previous convention, that it uses the absolute path.  
  src/cmt_use.cxx
fill_includes_macro
Adapt the fill_includes_macro to use the new _root standard macro      
2001-05-10 src/cmt_parser.cxx
do_broadcast
Add the -begin= option to start the broadcast loop from a given package. This option can be combined with other options such as -select or -exclude.  
  src/cmt_generator.cxx
filter_paths
Suppress two unused variables.  
  src/cmt_use.cxx
add
Bug fixing: during the discovery of versions requested for a given package, the discarded versions were not correctly replaced by the finally selected version, especially in the Use::get_paths method. The Use::get_selected_version has been added to obtain the effective replacement for a discarded version.  
  fragments/check_application suppress the ". setup.sh" before application run.    
2001-05-04 src/cmt_parser.cxx
set_standard_macros
The production of all use_xxx standard macros now is based on a "macro_append" keyword instead of "macro", since "macro" resets all previous definitions. Therefore if the user's requirements did augment those use_xxx macros, these specifications would be ignored.  
  src/cmt_parser.cxx
do_broadcast
Set the -local option to broadcast the default. Add the -global option to revert to the old default (with no selection and to any depth)    
2001-05-03 src/cmt_symbol.cxx
add_value_to_list
A new macro or set keyword resets (discards) all previous definitions for the corresponding symbol.  
  src/cmt_symbol.h
class SymbolValueList
Added an attribute discarded for symbol resetting.  
  src/cmt_parser.cxx
print_macros
Exclude scripts from macros defined in the $(tag).make file.    
2001-04-27 src/cmt_parser.cxx
get_best_form
Validate the compression algorithm for paths to packages (only for the macro ROOT - this is still not true for the ROOT environment variable) into a relative form when it is shorter than the absolute form.  
  src/cmt_system.cxx
compress_path
Fix the algorithm for compressing the patterns "aaaa/xxxx/../bbbb" into aaaa/bbbb.  
  src/cmt_generator.cxx
filter_paths
use CmtSystem::compress_path instead of duplicating its algorithm for erasing "/aaa/.." patterns    
2001-04-25 src/cmt_parser.cxx
set_standard_macros
Prepare the production of ROOT macros as relative paths rather than absolute ones, when the relative expression is shorter than the absolute one. Temporarily, trigger that feature by setting the CMTTESTPREFIX environment variable until absence of side effects is confirmed.    
2001-04-18 src/cmt_generator.cxx
build_readme
bug when generating the readme_trailer fragment : the PACKAGE variable should be reset to current.    
2001-04-11 src/cmt_generator.h
class Generator
 
  src/cmt_parser.cxx
do_build_readme
 
  src/cmt.h
class Cmt
do_build_readme now propagates argument list  
  fragments/readme_trailer  
  src/cmt_generator.cxx
build_readme
Added DATE and USER information when building the README.html file. readme_trailer fragment updated accordingly.  
  src/cmt_generator.cxx
build_readme
Add the -url= argument to the cmt build readme command. The specified URL will be used in place of the package path when generating the URL for used packages.    
2001-04-18 src/cmt_symbol.cxx
build
In all builder objects, symbol value lists registered by discarded Uses are now ignored.  
  src/cmt_symbol.h
class SymbolValue
cleanup a comment.  
  src/cmt_symbol.cxx
print
protect setup script execution against missing files.    
2001-04-10 src/cmt_generator.cxx
build_readme
 
  fragments/readme_use building readme.html requires to know the mgr/cmt style of each used package. This fragment now requires a fourth variable MGRSTYLE which reflects the use->mgr_style attribute. Generator::build_readme fills in this new variable.    
2001-04-06 src/cmt_parser.cxx  
  src/cmt_parser.cxx
reach_current_package
Use CmtSystem::getenv instead of base getenv  
  src/cmt_symbol.cxx
action
Now really private stuff is selected when access is at UserMode and scope is Private.  
  src/cmt_use.cxx
add
This method does not need to maintain current scope and access mode any longer.  
  src/cmt_parser.cxx
parse_requirements
Cmt::parse_requirements now manages the AccessMode and Scope when recursing into requirements files of used packages.  
Cmt::scope handles the sticky state provided by private/public statements Cmt::current_access handles the access mode that reflects the situation of the user  
  src/cmt_parser.h
enum
introduce the AccessMode to distinguish between DeveloperMode (when pwd is in the current package directory) and UserMode (otherwise).  
  src/cmt.h
class Cmt
Cmt::current_mode is now current_access and is of type AccessMode  
  src/cmt_parser.cxx
reach_current_package
Use CmtSystem::getenv instead of base getenv  
  src/cmt_use.cxx
Use::get_paths
 
  src/cmt_pattern.cxx Pattern :apply ()) : bug in computing the path between two Uses. The result now includes the current Use.    
2001-04-05 src/cmt_tag.cxx
Tag::addconst cmt_string& name, int priority
  clear a newly created Tag object (to deal with the reuse of old objects)  
  src/cmt_pattern.cxx Pattern :add) : clear a newly created pattern object (to deal with the reuse of old objects)  
  src/cmt_use.h
class Use
Add Use::author_action and Use::manager_action to fill in the author and manager information.  
  src/cmt_parser.cxx
select
fill in author and manager values with the complete line. When several author and manager statements are provided, fill in as several lines (separated with a new-line).  
  src/cmt_generator.cxx analyze_file const Constituent&   constituent, const cmt_string& file) : production of objects for libraries and applications is strictly identical.    
2001-04-03 src/cmt_constituent.cxx
clear
constituent.parameters was not cleared in Constituent::clear  
  src/cmt_symbol.cxx
build
add cleanup ValueList objects after their addition for ensuring a really new value (due to cmt_string optimizing)    
  mgr/Makefile Operate the demo targets on different make action lines  
  src/Makefile.header Added -tag=$(tag) to cmt actions  
  fragments/generator_header create the output directory if needed    
2001-04-02 fragments/nmake/constituent added the -tag=$(tag) option to cmt build actions  
  src/cmt_parser.cxx
parser
show_constituentxxx recursively reads used requirements files  
  src/cmt_pattern.cxx
Pattern::apply const
protection added for the case where the pattern is applied to the package that defines it.    
2001-03-29 src/cmt_use.cxx
get_paths
 
  src/cmt_use.h
class Use
 
  src/cmt_pattern.h
class IgnorePattern
 
  src/cmt_pattern.cxx
const apply
Bug in apply global patterns : a pattern defined in one package should only be applied to the Uses that are on one of the paths between the current Use and the one wher the pattern is defined (and not to the Uses that never pretend to inherit that pattern!!!)  
This required to implement the Use::get_paths which fills in the inclusive list of all Uses that are between two Uses.    
2001-03-27 fragments/dependencies protection against missing dependency make fragment during clean operations.  
  src/cmt_constituent.cxx
class constituents_action_iterator
  the -suffix= option was hidden by the user variable specification while parsing the constituent parameters.    
2001-03-23 mgr/requirements clean up WIN32 tag variants definitions  
  src/Makefile.header
setup.make
Display of the target in case of target not found (.DEFAULT)  
  fragments/make_setup
csh
few checks  
  fragments/installer add the creation of $(install_dir) if needed    
2001-03-21 src/cmt_parser.cxx
parse_arguments
When the tag specified in the command line arguments (using -tag=) is the same as CMTCONFIG, then still validate the tag given by uname  
  fragments/dependencies generate ${CONSTITUENT}_dependencies.make into $(bin)  
  fragments/constituent generate ${CONSTITUENT}.make into $(bin)  
  src/cmt_constituent.cxx
parse
 
  src/cmt_constituent.h
class Constituent
Added the two-step parsing of the constituents specifications : first stage during parsing of the requirements file, parameters are simply stored in the constituent object and not interpreted. Second stage : after building the standard macros (once requirements files have entirely been read) then constituent objects are parsed.  
  src/cmt_parser.cxx Add Constituent::parse_all in Cmt::set_standard_macros to finalize the constituent parsing. Install set_standard_macros in several additional actions        
2001-03-16 src/cmt_cvs.cxx
class CvsImplementation
Get the files at the top directory when doing a cmt checkout.  
Only checkout at head for the top package (ie do not recurse at head) and when -r is not specified.  
  src/cmt_symbol.cxx
resolve_value_for_macros
Perform the substitution of ${} to %% (or reverse) even if the env. var. is not defined in CMT.  
  src/cmt_parser.cxx
install_setup_scripts
Setup scripts on Windows generate the temporary expansion script in %HOMEDRIVE%%HOMEPATH%.    
  mgr/requirements clean up variants for VisualC and VisualC/debug    
2001-03-15 src/cmt_use.cxx
class use_action_iterator
Strange name conflict: the use_action_iterator::set method is in conflict with something else when the class is named "action_iterator" (is it a conflict with the same private class defined in Symbol.cxx ??)  
  src/NMakefile.header
cmtexe
Fix for re-building cmt when cmt.exe does not exist.    
2001-03-13 src/cmt_use.cxx
class action_iterator
Introducing the action_iterator class for managing the local expansion of macros in the syntax parser (similart to what was done in Symbol::action)  
  src/cmt_generator.cxx Generator :build_make_setup) when generating setup.make, the default value for constituents is extracted from the constituents macro.    
2001-03-06 src/cmt_cvs.cxx
class CvsImplementation
Show both top tags and non-top tags in cmt cvstags.  
  doc/CMT.htm Addition of several slide shows (from Atlas)  
  mgr/cmt_buildcvsinfos2.sh
error
The awk script had to be protected against multiple ocurrences of the /symbols/,/locks/ pattern.  
Implement both in python and in shell script the differntiated production of top tags and non-top tags. Top tags are the set of tags sharing the most recent CVS tagged version id (ie. the HEAD may be more recent)    
2001-03-05 src/cmt_parser.cxx
do_build_library_links
Handle libraries specified as a full path in _libraries  
  src/cmt_parser.cxx
print_context
 
  src/cmt_symbol.cxx
all_print
Use one line per env. var. assignment when generating setup scripts (instead of ; separated instructions) . The latter style should be no longer needed since we use temporary files.  
  src/cmt_parser.cxx
set_standard_macros
Add CMTCONFIG to the standard sets, so as to let it known as a plain "symbol"    
2001-03-02 src/cmt_system.h introduce the CmtSystem::ev_open () and CmtSystem::ev_close () to get the OS-dependent pattern for environment variable definition.  
  src/cmt_symbol.cxx
resolve_value_for_macros
Substitute patterns ${xxx} or %xxx% to the appropriate OS-dependent pattern when producing "set" values only (this is only done when the pattern is not already the good one)  
  src/cmt_parser.cxx
install_setup_scripts
Changed >>${tempfile} into >${tempfile} in setup scripts (fix a constraint in csh)    
2001-02-26 src/cmt_parser.cxx
do_build_temporary_name
Add the build temporary_name command to supply that missing function on various shells.
  src/cmt_parser.cxx
install_test_setup_scripts
Apply this new build service to setup scripts generation.  
  src/Makefile.header Needed a trailing end-of-line    
2001-02-15 src/cmt_cvs.cxx
class CvsImplementation
Fix misuse of checkout_package arguments (confusion between package path and checkout directory)    
2001-02-26 src/cmt_parser.cxx
install_test_setup_scripts
use mktemp for setup scripts.  
  mgr/requirements Suppress local private configuration of MSVC++. It has to be done previously to operate on CMT (even before making the INSTALL.bat)    
  src/cmt_deps_builder.cxx char* ptr,   state_def& state, const cmt_string& dir_name, int current_path_index, const CmtSystem::cmt_string_vector& include_paths, const CmtSystem::cmt_string_vector& substitutions, CmtSystem::cmt_string_vector& all_deps, CmtSystem::cmt_string_vector& deps)
  src/cmt_generator.cxx
const cmt_string& file_name
    Rollback recent change to work on cmt_strings rather than char* to restore speed.    
2001-02-15 src/cmt_generator.cxx
build_dependencies
Restore the mechanism that takes into account the arguments, and the source list when -all_sources option is provided.  
  mgr/requirements change /machine:I386 into /machine:IX86 as link option for VisualC    
2001-02-13 src/cmt_generator.cxx
build_dependencies
Do not require the source list from the arguments. Instead, get the sources directly from the constituents definition.  
The "cmt build dependencies" now only requires the constituent name.  
  src/cmt_deps_builder.cxx Read files at once into a cmt_string and work from the text instead of reainf line by line from the file.  
Install the detection of fortran include statements    
2001-02-06 src/cmt_use.cxx clean up space & tabs  
  src/cmt_parser.cxx
parse_requirements_text
Abort the parser in case of error, but only for check configuration command.  
  arc/NMakefile.header
lex_echo
Add -quiet option to cmt command except cmt check configuration  
  fragments/nmake/constituents.nmake Add -quiet option to cmt command    
2001-01-30 all dsp fragments suppress the Win32 Release configuration. Only keep the Win32 Debug. This makes possible the generation of msdev using the syntax cmt build msdev -tag=VisualCdbg    
  mgr/cmt_buildcvsinfos.py first attempt to make the cvs script   written in Python  
  mgr/requirements Consistently base Windows tag on VisualC rather than WIN32  
upgraded setup.tcsh setup.zsh  
introduced cmt show include_dirs  
introduced cmt show constituent  
bug in Pattern::add : overridden patterns were not cleared.  
cmt config must recursively get used packages (at least to get patterns)  
introduced cmt show pattern_names (at least for completion mechanisms) new action : action_show_pattern_names  
experimental work started on build triggers  
macro build_triggers implied_library_prefix implied_library_sufffix  
new library option -triggers new constituent attribute build_triggers new fragment dependencies_and_triggers for libraries  
bug in cmt_system.cxx::scan_dir  
Recursively get all requirements file in cmt config action    
Changed strategy for argument parsing error detection    
  src/cmt_use.cxx
const cmt_string& from_path
bug in detection of "use pack " without version specification at all (ie equiv. to *). We needed to check we are on a real CMT package.  
  src/cmt_constituent.cxx
class action_iterator
Expand the macros before acting upon a constituent specification. Each expanded word may then result in several words. Thus the line parser is re-implemented through a local operator class "action_iterator", in charge of filling up a new constituent object from the expanded statement. (Note that this mechanism could perfectly be reused for other statements eg "use" !!!)  
  src/cmt_parser.cxx
set_standard_macros
Implement all_constituents and all_constituentsclean unconditionally.  
  src/NMakefile.header
checkuses
if defined statements require that the macro to test is provided without quotes.  
  src/cmt_generator.cxx Apply the new convention of installing object files into $(bin)${CONSTITUENTS} also for applications (was only done for libraries)  
  src/cmt_parser.cxx
print_context
Take the current CONFIG name from CmtSystem::get_cmt_config rather than recursively calling "cmt system", when generating setup scripts.  
  src/cmt_cvs.cxx
class CvsImplementation
Use '/' ínstead of CmtSystem::file_separator for CVS-only file specs.    
2000-12-26 src/cmt_fragment.h
class Fragment and FragmentHandle
Install all variants of (win)copy methods that act upon a cmt_string instead of a FILE*.  
  src/cmt_model.cxx Create the implementation file for CmtModel  
  src/cmt_model.h
class CmtModel
Create the CmtModel class  
  src/cmt_parser.cxx
do_expand_model
Add the new command verb : 'expand model' and all associated features
  src/cmt_parser.cxx
do_expand_model
call the CmtModel::expand