2016-05-31    <rybkin@lal.in2p3.fr> 529

	* doc/ReleaseNotes.html: Update
	* doc/CMTDownload.html: idem

2016-05-27    <rybkin@lal.in2p3.fr> 528

	* mgr/cmt_svn_checkout.py: Strip leading '!' from CMTHEADVERSION value, if any,
	when setting package version
	* source/cmt_use.cxx: Strip leading '!' from CMTHEADVERSION value, if any,
	when checking for head version, do not set error when use is not located
	if it corresponds to "cmt_standalone" package

2016-05-18    <rybkin@lal.in2p3.fr> 527

	* mgr/cmt_svn_checkout.py: For trunk checkout, skip the check whether
	trunk corresponds to a particular tag if CMTHEADVERSION is unset, empty,
	or its value starts with '!'

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

	* source/cmt_parser.cxx: In class Cmt function do_broadcast, cosmetic
	improvement to error message
	
2014-01-31    <rybkin@lal.in2p3.fr> 524

	* source/cmt_use.cxx: Add default clause to switch statements to avoid
	compilation warning about enumeration value(s) not being handled on
	Mac OS X 10.8.5
	* source/cmt_deps_builder.cxx: idem
	* source/cmt_generators.cxx: idem
	* source/cmt_script.cxx: idem
	* source/cmt_project.cxx: idem
	* source/cmt_pattern.cxx: idem
	* source/cmt_lock.cxx: idem
	* source/cmt_vcs.cxx: idem
	* source/cmt_generator.cxx: idem
	* source/cmt_symbol.cxx: idem
	* source/cmt_parser.cxx: idem,
	In class Cmt function do_broadcast, if depth option value is less than -1,
	use depth value of -1 and issue warning
	* source/cmt_constituent.cxx: Use cmt_string and string literal as first
	and second arguments respectively of != operator to avoid compilation
	warning about comparison being unspecified on Mac OS X 10.8.5
	
2014-01-25    <rybkin@lal.in2p3.fr> 523

	* source/cmt_symbol.cxx: In class SetBuilder, PathBuilder functions build,
	do not set error for environment variable access if set or path is defined
	in requirements
	* source/cmt_error.cxx: In class CmtError function print, output diagnostic
	messages for error called "warning" as warnings
	
2014-01-10    <rybkin@lal.in2p3.fr> 522

	* source/cmt_tag.cxx: Update authorship info
	* source/cmt_std.h: idem
	* source/cmt_awk.cxx: idem
	* source/cmt_system.cxx: idem
	* source/cmt_symbol.h: idem
	* source/cmt_project.h: idem
	* source/cmt_use.cxx: idem
	* source/cmt_install_area.cxx: idem
	* source/cmt_tag.h: idem
	* source/cmt_deps_builder.cxx: idem
	* source/cmt_fragment.cxx: idem
	* source/cmt_generators.cxx: idem
	* source/cmt_constituent.cxx: idem
	* source/cmt.cxx: idem
	* source/cmt_deps_builder.h: idem
	* source/cmt_syntax.cxx: idem
	* source/cmt_triggers.cxx: idem
	* source/cmt_fragment.h: idem
	* source/cmt_database.h: idem
	* source/cmt_error.cxx: idem
	* source/cmt_generators.h: idem
	* source/cmt_model.cxx: idem
	* source/cmt_commands.cxx: idem
	* source/cmt_constituent.h: idem
	* source/cmt_project.cxx: idem
	* source/cmt_generator.h: idem
	* source/cmt_pattern.cxx: idem
	* source/cmt_error.h: idem
	* source/cmt_regexp.h: idem
	* source/cmt_parser.h: idem
	* source/cmt_language.cxx: idem
	* source/cmt_commands.h: idem
	* source/cmt_lock.cxx: idem
	* source/cmt_string.h: idem
	* source/cmt_vcs.cxx: idem
	* source/cmt_cmtpath_pattern.cxx: idem
	* source/cmt_map.h: idem
	* source/cmt_database.cxx: idem
	* source/cmt_log.h: idem
	* source/cmt_language.h: idem
	* source/cmt_system.h: idem
	* source/cmt_vcs.h: idem
	* source/cmt_use.h: idem
	* source/cmt_cmtpath_pattern.h: idem
	* source/cmt_generator.cxx: idem
	* source/cmt_regexp.cxx: idem
	* source/cmt_cvs.cxx: idem
	* source/cmt_parser.cxx: idem
	* source/cmt_symbol.cxx: idem
	* source/cmt.h: idem
	* source/cmt_string.cxx: idem
	* mgr/fragments/nmake/packages_header: idem
	* mgr/fragments/packages_header: idem
	* src/NMakefile.core: idem
	* src/NMakefile.header: idem
	* src/setup.tcsh: idem
	* src/setup.zsh: idem
	* src/Makefile.core: idem
	* src/Makefile.header: idem

2014-01-06    <rybkin@lal.in2p3.fr> 521

	* source/cmt_tag.h: In class Tag, introduce static function apply_tag to
	return map of tags and uses in which apply_tag statement appears for tag
	* source/cmt_tag.cxx: In class Tag, in function action_apply update map of
	tags and uses returned by function apply_tag, in function check_tag_used
	return true if tag appears in apply_tag statement, in function
	show_definition print uses in which apply_tag statement appears for tag
	* source/cmt_map.h: In templated class cmt_vnode, remove const modifiers
	for function find to allow for cmt_vnode value to be modified, in templated
	class cmt_vmap, in function find remove const modifier for return value
	to allow for cmt_vmap values to be modified
	* source/cmt_parser.cxx: Implement helper function parse_cmt_flags to parse
	-with(out)_cmt, -with(out)_projects, -(no)_strip_path flags from
	requirements file, in class Cmt, modify function configure_current_package
	to return location of requirements file if found, in function configure
	make use of function parse_cmt_flags, do not read user requirements file(s)
	for action_none
	* source/cmt_symbol.cxx: In class PathBuilder, introduce static function
	get_path_builder to return unique class instance, make assignment operator
	and copy constructor private to forbid copying, make other constructors
	private, in class Symbol functions create and set_strip_path make use of
	function get_path_builder
	* source/cmt.h: In class Cmt, modify function configure_current_package
	signature
	* mgr/requirements: Associate CMTv1 tag with with HEAD
	
2013-12-13    <rybkin@lal.in2p3.fr> 520

	* mgr/CMT.dtd: Correct CMT site URL
	
2013-12-13    <rybkin@lal.in2p3.fr> 519

	* source/cmt_symbol.cxx: In class Symbol function action, fully resolve
	setup, cleanup script path except for setup, cleanup shell script
	generation, in function print_clean, use unalias command to remove alias
	with Bourne syntax shell, in function print, fully resolve set value, do
	not mangle set, path name in Xml mode
	* source/cmt_parser.cxx: In class Cmt function print_context, do not mangle
	use prefix in Xml mode
	
2013-12-11    <rybkin@lal.in2p3.fr> 518

	* source/cmt_commands.cxx: In class ArgParser, functions
	option(_no)_path_strip renamed option(_no)_strip_path, command line options
	-(no_)path_strip renamed -(no_)strip_path
	* source/cmt_commands.h: idem
	* source/cmt_symbol.h: In class class Symbol, function set_path_strip
	renamed set_strip_path
	* source/cmt_symbol.cxx: In class PathBuilder, functions get/set_path_strip
	renamed get/set_strip_path, member m_path_strip renamed m_strip_path
	* source/cmt.h: In class CmtContext, member m_path_strip renamed
	m_strip_path, in class Cmt, function get_path_strip renamed get_strip_path
	* source/cmt_parser.cxx: In class Cmt function do_setup, use
	-no_strip_path,	-strip_path option names, function get_strip_path, class
	Symbol function	set_strip_path
	
2013-12-06    <rybkin@lal.in2p3.fr> 517

	* source/cmt_deps_builder.cxx: In helper function in_line_action, fix
	parsing in case neither quotes or comments are found
	
2013-12-05    <rybkin@lal.in2p3.fr> 516

	* source/cmt_deps_builder.cxx: In helper function at_start_action, fix
	parsing Fortran INCLUDE statement, optimise in_line_action helper function,
	in helper function build_deps_text, fix parsing C++ style comments in case
	without other characters
	* source/cmt_parser.cxx: In class Cmt function do_broadcast, add package,
	version, offset info to printout of "cmt broadcast" command, similar to
	printout in CMTBCAST mode
	
2013-12-03    <rybkin@lal.in2p3.fr> 515

	* source/cmt_symbol.h: In class SymbolValueList function print, class
	Symbol functions all_print, print introduce optional argument of type
	ostream	reference, in class Symbol, declare static functions std_env_vars,
	set_path_strip
	* source/cmt_symbol.cxx: In class PathBuilder, introduce and implement
	functions filter_path_value, get/set_path_strip, constructor with
	path_strip argument and member m_path_strip to indicate whether to strip
	paths of non-existent directories, in unnamed namespace, introduce cache
	of command outputs for use in functions resolve_value,
	resolve_value_for_macros, suppress_OS_delimiters, in class Symbol function
	create, create PathBuilder instance with configured value of path_strip,
	in class Symbol, implement static functions std_env_vars, set_path_strip,
	control access to environment in functions resolve_value, class Symbol
	functions all_set, get_env_value, class SetBuilder function build, class
	PathBuilder function build, systematically use class PathBuilder function
	filter_path_value in class Symbol functions all_set, check_all_paths,
	print, in class PathBuilder function build, in class SymbolValueList
	function print, modify helper function find_path_entry so as not to access
	file system and return index of entry found, in class PathBuilder function
	build, make use of signature to enhance implementation of path_append /
	prepend commands, drop redundant cleaning of repeating path separators, in
	class SymbolValueList function print, implement enhanced cached
	requirements file generation, i.e., resolve sets for macros if possible,
	resolve paths fully if possible, so as to strip path of non-existent
	directories, implement use of argument of type ostream reference
	* source/cmt_use.cxx: In class Use function fill_standard_macros, generate
	CONFIG macros, if CONFIG environment variables are relevant, in setup
	Requirements mode
	* source/cmt_error.cxx: Cosmetic modifications to error messages
	* source/cmt_commands.h: In class ArgParser, declare functions
	option_with(out)_projects, option(_no)_path_strip
	* source/cmt_commands.cxx: In class ArgParser, implement introduced
	functions
	* source/cmt.h: In class CmtContext, introduce member m_use_projects to
	indicate whether to parse project files, member m_env_access to indicate
	whether symbols values can be taken from environment, member m_print_mode
	to hold	corresponding value from class ArgParser instance, member
	m_path_strip to indicate whether to strip paths of non-existent
	directories, in class Cmt functions print, print_context introduce optional
	argument of type ostream reference, declare and implement inline functions
	get/set_env_access, get/set_print_mode, get_path_strip
	* source/cmt_parser.cxx: In class Cmt function configure_cmt_path, do not
	create projects if m_use_projects is false, in function do_broadcast, set
	cmtpath for all uses so as to fill in templates correctly, in function
	do_check_configuration, do not run class Symbol function check_all_paths
	for setup unless in Requirements mode (since paths checks are done in class
	Symbol function print), in function do_setup, implement procedure of cached
	requirements file generation, i.e., do not access environment to set
	symbols values and, by default, strip paths of non-existent directories if
	possible, in function guess_current_project, return if projects are not
	used, do not change m_autoconfigure_cmtpath value, in functions print,
	print_context, implement use of argument of type ostream reference, in
	function print_context, in Requirements mode, generate CONFIG sets if
	CONFIG environment variables are relevant, in function
	use_special_requirements, handle case when projects are not used
	* mgr/requirements: Associate CMTr25 tag with HEAD, append CMT to PATH as
	in CMT setup scripts
	
2013-11-13    <rybkin@lal.in2p3.fr> 514

	* source/cmt_use.cxx: In class Use get_strategy function, make use of now
	fast get_project function rather than compute, in fill_standard_macros,
	get_package_name, get_project functions, simplify code
	* source/cmt_parser.cxx: In class Cmt install_scripts functions, make
	generated setup and cleanup scrips call CMT executable directly rather than
	via shell script wrapper
	* src/setup.sh: Reduce usage of external shell utilities by using POSIX
	shell features instead
	* src/cleanup.sh: idem, unset everything set by setup.sh
	* src/setup.csh: Reduce usage of external shell utilities by using C shell
	features instead
	* src/cleanup.csh: idem, unset everything set by setup.csh
	* src/cleanup.tcsh: Add script to unset TCSH specific environment setup
	* src/cleanup.zsh: Add script to unset Z shell specific environment setup
	* src/cleanup.bash: Add script to unset BASH specific environment setup
	
2013-11-08    <rybkin@lal.in2p3.fr> 513

	* source/cmt.h: In class CmtContext, make assignment operator and copy
	constructor private to forbid copying, in class Cmt, inline simple member
	functions for speed-up, add static member to hold reference to CmtContext
	instance
	* source/cmt_parser.cxx: Initialize static class Cmt member, comment out
	inlined class Cmt methods implementation
	
2013-11-07    <rybkin@lal.in2p3.fr> 512

	* source/cmt_tag.cxx: In class Tag mark function, do not activate tag if
	in list of tags to remove, making -tag_remove=<tag-list> option functional
	on any tags (rather than only those specified on the command line or in
	CMTEXTRATAGS environment variable)
	* source/cmt_syntax.cxx: In classes KwdBuildStrategy, KwdSetupStrategy,
	KwdStructureStrategy action project function, make error description
	detailed, in class SyntaxParser do_parse_words project function, print
	error message in case of syntax error encountered in value
	* source/cmt_parser.cxx: In class CmtContext, factor out processing of
	CMTEXTRATAGS environment variable value into separate initialize function,
	in class Cmt, move restore_all_tags call into configure function before all
	system tags handling to make all initially known tags available while
	reading project files, implement get_tags_remove function, in parser
	function initialise static CmtContext instance at very beginning
	* source/cmt.h: In class Cmt, declare get_tags_remove function
	
2013-11-05    <rybkin@lal.in2p3.fr> 511

	* source/cmt_project.h: In class Project, change fill_selection function
	signature to return projects (pointers), introduce function fill_exclusion
	* source/cmt_project.cxx: In class ProjectFactory create_project function,
	use change_path function on project use object, in class Project implement
	fill_selection function for enhanced handling of special CMTHOME,
	CMTUSERCONTEXT projects (selected if current project only) and special
	depth values (0: CMTUSERCONTEXT project	only, -1: CMTHOME project only),
	implement fill_exclusion function to exclude special CMTHOME,
	CMTUSERCONTEXT projects unless current project, in find_in_cmt_paths
	function fix search condition and comment out never used code, in
	container_action function issue warning	or set error if container package
	cannot be located
	* source/cmt_use.h: In class Use, add member to hold project (pointer)
	package	found in, add optional argument project (pointer) to change_path,
	select_alternate functions, add	set_project function, inline located
	function, make m_located member private
	* source/cmt_use.cxx: In class Use, assign use project in function
	change_path, in class UseProjectAction run and class Use select_alternate
	functions, in particular, in functions get_cmtpath_and_offset,
	fill_standard_macros, get_project make use of added class member (project)
	for optimisation
	* source/cmt_generators.h: In class PackagesMakefileGenerator, add member
	m_ISINCLUDED
	* source/cmt_generators.cxx: In class PackagesMakefileGenerator
	constructor, reset function handle added member m_ISINCLUDED, in build
	function make use of class Project fill_exclusion function and added
	member to ensure packages from special CMTHOME, CMTUSERCONTEXT projects
	are only visited, if in current project
	* source/cmt_syntax.cxx: In class KwdBuildStrategy, KwdSetupStrategy,
	KwdStructureStrategy action functions use class Use get_project function
	for optimisation
	* source/cmt_commands.cxx: In class ArgParser option_disable_warnings,
	option_quiet, option_warnings functions, do not set CmtMessage level, add
	option value to CMTFLAGS, in option_use, option_pack, option_version,
	option_path functions only record option value, in option_tag,
	option_tag_add, option_tag_remove functions, only record option values, in
	option_with_version_directory, option_without_version_directory functions
	do not change strategy, add option value to CMTFLAGS, in class CommandHelp
	show_all function, add message for -home, -user_context options
	* source/cmt_pattern.cxx: In class Pattern expand function, use class Use
	get_project function for optimisation
	* source/cmt_parser.cxx: In class CmtContext constructor, process
	CMTEXTRATAGS environment variable value, in clear function, reset all
	members, in class Cmt configure function, attempt to locate current use
	or package if at least name is available from command line options before
	configure_current_package for optimisation, in configure_current_cmtpath
	function make use of class Use get_cmtpath_and_offset function,
	return from configure_current_package if current use is located, in
	configure_current_structuring_style function, do not parse command line
	arguments, make use of value from command line or parse CMTFLAGS to set
	strategy accordingly, in configure_home, configure_user_context functions,
	use value from command line if any, in restore_all_tags function, add tags
	from CmtContext m_extra_tags, m_tags, m_tags_add vectors, in
	configure_cmt_message function do not parse command line arguments, parse
	CMTFLAGS, in do_broadcast function, set error if depth option value cannot
	be parsed or is out of range (< -1), make use of class Project
	fill_selection, fill_exclusion functions to 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), in
	do_check_configuration function, check tags from CmtContext m_extra_tags,
	m_tags, m_tags_add vectors, in do_show_clients function do not re-run
	configure, in guess_current_project function, do not use CmtSystem cd or
	pwd functions for optimisation, in parse_arguments function do not call
	restore_all_tags function, in parser function call parse_arguments first
	and then configure, restore_all_tags to make configuration process cleaner,
	do not call configure for action_build_temporary_name, in print function do
	not check tags or change m_extra_tags since that change affects nothing, in
	use_current_package, use_extra_file functions do not attempt to locate
	current package if current use located already, factor out
	Pattern::apply_all_globals and Tag::restore_tree calls into separate
	apply_globals function called after all requirements are read, in
	use_special_requirements function set special use style, structuring_style,
	project members if located, otherwise discard, in particular, that means
	that requirements file in special CMTHOME, CMTUSERCONTEXT projects is not
	mandatory
	* source/cmt_symbol.cxx: In class Symbol action function, make
	constituentsclean symbol private (like constituents)
	* source/cmt.h: In class CmtContext, add string vector members
	m_extra_tags, m_tags, m_tags_add, m_tags_remove instead of string
	m_extra_tags, in class Cmt, function reach_current_package renamed
	use_current_package, introduce apply_globals function
	* mgr/fragments/nmake/package: Ensure that not included packages are
	not visited
	* mgr/fragments/package: idem
	* src/Makefile.header: Update help messages for BCAST mode in presence of
	special CMTHOME, CMTUSERCONTEXT packages/projects

2013-10-04    <rybkin@lal.in2p3.fr> 510

	* mgr/cmt-make-time-sub-mem-io.awk: Add script to profile CMT commands
	utilisation in the Makefiles

2013-07-31    <rybkin@lal.in2p3.fr> 509

	* mgr/cmt_svn_checkout.py: Add support for devbranches directory -
	additional branches location - in Subversion repository.

2013-07-10    <rybkin@lal.in2p3.fr> 508

	* source/cmt_commands.cxx: In class ArgParser function option_use, make
	-use=<package>:<version>:<path> option fully functional with standard use
	statement syntax, in function option_path, make -path=<path> option
	functional for relative <path> as with standard use statement syntax
	* source/cmt_parser.cxx: In class Cmt functions reach_current_package,
	use_extra_file make diagnostic message more informative

2013-07-09    <rybkin@lal.in2p3.fr> 507

	* mgr/cmt_svn_checkout.py: Use a different algorithm in the class Checkout
	function trunk_tag in order to optimise the performance, suggested by
	Wim Lavrijsen. Add --debug command line option and SVNDEBUG environment
	variable to facilitate debugging

2013-06-25    <rybkin@lal.in2p3.fr> 506

	* mgr/fragments/application: Test use_stamps variable for a non-empty value
	since POSIX requires a non-null list of targets in rules

2013-06-24    <rybkin@lal.in2p3.fr> 505

	* mgr/fragments/application: Work around Make errors if $(use_stamps) files
	do not exist
	* mgr/fragments/nmake/application: idem
	
2013-06-06    <rybkin@lal.in2p3.fr> 504

	* source/cmt_parser.cxx: In class Cmt function do_config, ensure that *.in
	files are removed in binary tag directory only
	
2013-02-07    <rybkin@lal.in2p3.fr> 503

	* mgr/fragments/cleanup_library: Fix cleanup of libraries for Darwin
	platform
	
2013-02-06    <rybkin@lal.in2p3.fr> 502

	* mgr/fragments/nmake/constituent_app_lib: Introduce makefiles fragment for
	applications, libraries in order to compile dependent constituents in
	parallel
	* mgr/fragments/nmake/constituent: Remove unused code, add empty command for
	double-colon rules without one (so that implicit rule is not searched for),
	do not ignore errors in install target rule command(s)
	* mgr/fragments/nmake/constituent_lock: idem
	* mgr/fragments/nmake/application_header: Add rules for ${CONSTITUENT}compile,
	${CONSTITUENT}prototype targets
	* mgr/fragments/nmake/java_header: idem
	* mgr/fragments/nmake/library_header: idem
	* mgr/fragments/nmake/jar_header: idem
	* mgr/fragments/nmake/jar: Add empty command for double-colon rules without one (so that implicit rule is not searched for)
	* mgr/fragments/nmake/library: idem
	* mgr/fragments/nmake/library_no_static: idem
	* mgr/fragments/nmake/java: Create necessary directory in compilation rule
	to avoid race condition
	* mgr/fragments/constituent_app_lib: Simplify dependencies specification
	* mgr/fragments/constituent: In ${CONSTITUENT}install target rule
	command, check whether makefile exists to allow for use of -n (no-op) Make
	option, do not ignore errors, in ${CONSTITUENT}uninstall target rule
	command, ignore errors, similar to ${CONSTITUENT}clean target rule command
	* mgr/fragments/constituent_lock: idem
	* mgr/fragments/nmake/check_application: Remove space between $(silent) and
	possibly undefined macro (causing NMAKE : fatal error U1038: Internal error)
	* mgr/cmt_dcc_version.sh: Made more generic to account for clang compiler
	on Mac OS X platform
	
2013-01-28    <rybkin@lal.in2p3.fr> 501

	* source/cmt_parser.cxx: In class Cmt functions print_symbol_names,
	print_macros, exclude aliases when showing set names, sets, with same
	result for commands "cmt show set_names", "cmt show sets"
	
2013-01-25    <rybkin@lal.in2p3.fr> 500

	* source/cmt_constituent.cxx: In class constituents_action_iterator
	function set, assign constituent member has_modules according to passed
	option -modules or -no_modules, print diagnostic message about bad option
	if Verbose level is activated only, in class Constituent function clear,
	set has_modules to false, in function show, add printout for options
	-modules and -no_modules
	* source/cmt_constituent.h: In class Constituent, introduce member
	has_modules for applications and libraries in languages with modules (like
	Fortran 90 and later)
	* source/cmt_project.cxx: In class Project functions set_strategy and
	update_strategy, update strategy for project(s) without parent and children 
	* source/cmt_parser.cxx: In class StandardMacroBuilder function
	fill_for_constituent_macros, for applications, libraries add to macros
	<constituent>compile_dependencies macros <dependency>compile for
	dependencies that have modules so that dependencies modules, generated at
	compile time, are available before constituent compilation
	* mgr/fragments/dependencies: Do not (re)build
	${CONSTITUENT}_dependencies.make at prototype build stage as some header
	files may not be available yet
	* mgr/fragments/constituent_app_lib: In target ${CONSTITUENT}install rule
	command, check whether makefile exists to allow for use of -n (no-op) Make
	option, in target ${CONSTITUENT}uninstall rule command, ignore errors,
	similar to target ${CONSTITUENT}clean rule command

2013-01-11    <rybkin@lal.in2p3.fr> 499

	* source/cmt_generators.cxx: In class LibraryGenerator function build,
	depending on constituent attribute need_prototypes, set m_HASPROTOTYPES
	accordingly and fill jar_header, java_header, library_header,
	application_header makefiles fragments with value, in class
	ConstituentsMakefileGenerator constructor, in function reset, handle
	introduced fragment constituent_app_lib, in function build, set
	m_HASPROTOTYPES according to constituent attribute need_prototypes, fill
	introduced fragment constituent_app_lib with value
	* source/cmt_generators.h: In class ConstituentsMakefileGenerator,
	introduce member for fragment constituent_app_lib
	* source/cmt_generator.h: In class CmtGenerator, introduce member m_HASPROTOTYPES
	* source/cmt_generator.cxx: In class CmtGenerator constructor, in function
	reset, handle introduced member m_HASPROTOTYPES
	* source/cmt_parser.cxx: In class StandardMacroBuilder function
	fill_for_constituent_macros, define macros <constituent>compile_dependencies,
	<constituent>prototype_dependencies for applications, libraries
	* mgr/fragments/constituent_app_lib: Introduce makefiles fragment for
	applications, libraries in order to compile dependent constituents in
	parallel
	* mgr/fragments/constituent: Remove unused code, add empty command for
	double-colon rules without one (so that implicit rule is not searched for)
	* mgr/fragments/constituent_lock: idem
	* mgr/fragments/application_header: Add rules for ${CONSTITUENT}compile,
	${CONSTITUENT}prototype targets
	* mgr/fragments/java_header: idem
	* mgr/fragments/library_header: idem
	* mgr/fragments/jar_header: idem
	* mgr/fragments/library: Create shared library stamp in same rule as library
	* mgr/fragments/library_no_static: Create library stamps in same rule as
	library
	* mgr/fragments/jar: Add empty command for double-colon rules without one (so that implicit rule is not searched for)
	* mgr/fragments/java: Create necessary directory in compilation rule to
	avoid race condition
	* mgr/requirements: Declare makefiles fragment constituent_app_lib

2013-01-03    <rybkin@lal.in2p3.fr> 498

	* source/cmt_constituent.cxx: In class constituents_action_iterator,
	set constituent attribute need_check to true, if specified, for applications
	only
	* source/cmt_generator.h: In class CmtGenerator, introduce member
	m_ISCHECKGROUP
	* source/cmt_generator.cxx: idem
	* source/cmt_generators.cxx: In class ConstituentsMakefileGenerator
	function build, depending on whether constituent belongs to check group,
	set m_ISCHECKGROUP appropriately and fill check_application_header
	makefiles fragments with value
	* mgr/fragments/check_application_header: For applications belonging to
	check group, ensure that application is built before running check
	* mgr/fragments/nmake/check_application_header: idem
	* mgr/fragments/check_application: In application Makefile, remove
	check target dependency on application, handled in constituents Makefile,
	improve control of Make verbosity
	* mgr/fragments/check_java: idem
	* mgr/fragments/nmake/check_application: idem
	* mgr/fragments/nmake/check_java: idem
	
2012-11-23    <rybkin@lal.in2p3.fr> 497

	* source/cmt_generators.cxx: In class DocumentGenerator function build,
	add template LINE for fragments document's header, trailer, add template
	OUTPUTNAME for fragments dependency, document's fragment
	
2012-11-07    <rybkin@lal.in2p3.fr> 496

	* source/cmt_symbol.cxx: Introduce helper function process_cmd_output to
	process command output similar to `shell' function of GNU Make. Make use of
	this function in functions resolve_value, resolve_value_for_macros,
	suppress_OS_delimiters in order to allow for possibly multi-line output of
	commands in command substitution (introduced with backquotes)
	
2012-09-21    <rybkin@lal.in2p3.fr> 495

	* source/cmt_std.h: Replace macro linux with __linux__, latter being
	predefined by gcc with or without -ansi option
	
2012-08-04    <rybkin@lal.in2p3.fr> 494

	* source/cmt_parser.cxx: In class StandardMacroBuilder, in function
	fill_for_all_constituents, parse includes acquired via include_dirs
	statement for all imported uses (were otherwise left unparsed)
	
2012-05-15    <rybkin@lal.in2p3.fr> 493

	* mgr/requirements: In definitions of cdepflags, cppdepflag macros for
	Linux, Darwin tags, add explicit specification of target of rule emitted by
	dependency generation (with -MQ TARGET option)
	
2012-05-14    <rybkin@lal.in2p3.fr> 492

	* mgr/requirements: In definitions of cdepflags, cppdepflag macros for
	Linux, Darwin tags, add explicit specification of file to receive
	dependency information (with -MF FILE option) to work around distcc problem
	with gcc 3.0 and later, see
	http://distcc.googlecode.com/svn/trunk/doc/web/faq.html
	
2012-05-13    <rybkin@lal.in2p3.fr> 491

	* src/Makefile.core: Do not modify MAKEFLAGS in Makefile
	* src/Makefile.header: Improve control of Make verbosity
	
2012-05-07    <rybkin@lal.in2p3.fr> 490

	* mgr/fragments/cpp: Implement enhanced mechanism of source file
	dependencies generation at compilation time making use of -MMD preprocessor
	option
	* mgr/fragments/cpp_library: idem
	* mgr/fragments/c: idem
	* mgr/fragments/c_library: idem
	* mgr/requirements: Define cdepflags, cppdepflag macros for Linux, Darwin
	tags to enable enhanced mechanism of source file dependencies generation
	at compilation time when tag c_native_dependencies or
	cpp_native_dependencies is activated
	
2012-04-30    <rybkin@lal.in2p3.fr> 489

	* mgr/fragments/group: Remove reference to obsolete target makefilesclean
	causing error with PEDANTIC defined
	* mgr/fragments/constituents_header: Clean up code
	* mgr/fragments/constituents_trailer: idem
	* mgr/fragments/nmake/group: Clean up code
	* mgr/fragments/nmake/constituents_trailer: idem
	
2012-04-27    <rybkin@lal.in2p3.fr> 488

	* source/cmt_generators.cxx: In class LibraryGenerator, in function
	proto_file_action, add template CONSTITUENT for fragment buildproto, in
	function build, add template OBJS for fragment protos_header
	* mgr/fragments/protos_header: Add dependency for each object on every
	prototype stamp for constituent so that prototypes can be used for current
	constituent source file(s)
	* mgr/fragments/nmake/protos_header: idem
	* mgr/fragments/buildproto: Introduce rule for prototype file since it may
	be dependency of current constituent source file(s)
	* mgr/fragments/nmake/buildproto: idem
	* mgr/cmt_afs_readonly.sh: Add script to convert CMT setup scripts for
	deployment on read-only AFS volume
	
2012-04-25    <rybkin@lal.in2p3.fr> 487

	* source/cmt_commands.cxx: In class ArgParser function do_show, introduce
	commands "cmt show alias", "cmt show alias_names", "cmt show alias_value",
	"cmt show aliases", in class CommandHelp constructor, document new commands
	and document use of optional <regexp> argument for "cmt show" commands
	{action,macro,set}{s,_names}
	* source/cmt.h: In class Cmt, declare functions do_show_alias,
	do_show_alias_names, do_show_alias_value, do_show_aliases
	* source/cmt_parser.h: In enum ActionType, introduce members
	action_show_alias, action_show_alias_value, action_show_alias_names,
	action_show_aliases
	* source/cmt_parser.cxx: In class Cmt, implement functions do_show_alias,
	do_show_alias_names, do_show_alias_value, do_show_aliases, in function
	do_show_macro, implement function do_show_action via do_show_macro, enhance
	function do_show_macro to show actions and aliases, in function parser,
	make use of new alias related functions, in function print_symbol_names,
	add case of action_show_alias_names, in function print_macros, add case of
	action_show_aliases
	* source/cmt_symbol.cxx: In class Symbol function show_macro, add case of
	action_show_aliases, action_show_alias, action_show_alias_value
	* src/setup.csh: Fix case of unset environment variable CLASSPATH, optimise
	tcsh shell is identification
	* src/setup.bash: Implement command completion for alias related commands
	* src/setup.zsh: idem
	* src/setup.tcsh: idem, optimise by removing redundant sed utility
	invocations
	
2012-04-24    <rybkin@lal.in2p3.fr> 486

	* source/cmt_symbol.cxx: In class Symbol function filter_path_value, test
	existence of directory added to path to issue warning only if warning is
	active (for optimisation)
	* mgr/cmt_system.sh: Optimise by reducing the number of processes (invoke
	awk instead of sed and awk)
	* src/setup.sh: Optimise by reducing the number of processes making use of
	POSIX shell features
	* src/setup.csh: Optimise by reducing the number of processes making use of
	C shell features
	
2012-04-16    <rybkin@lal.in2p3.fr> 485

	* source/cmt_system.cxx: In class CmtSystem, re-write split function in
	order to improve and optimise algorithm
	* source/cmt_system.h: In class CmtSystem split function, introduce
	argument bool& unquote with default value true
	* source/cmt_use.cxx: In classes VersionReader, PackageReader function
	filter, do not parse comment lines
	* source/cmt_project.cxx: In class ProjectReader function filter, do not
	parse comment lines
	* source/cmt_string.h: In class cmt_string, introduce constructor from
	character array with n elements
	* source/cmt_string.cxx: In class cmt_string, implement constructor from
	character array with n elements
	* source/cmt_parser.cxx: In class Cmt function vector_to_string, make sure
	separator is not prepended at beginning
	* source/cmt_symbol.cxx: Introduce helper function find_path_entry with
	cmt_string_vector& (rather than cmt_string) first argument, in class
	PathBuilder function build, perform all calculations on vector of values,
	rather than string, in order to optimise and improve algorithm
	
2012-04-05    <rybkin@lal.in2p3.fr> 484

	* source/cmt_constituent.cxx: In class Constituent function show, add
	printout on prototypes so that it can be passed properly to constituent
	input requirements file
	
2012-04-05    <rybkin@lal.in2p3.fr> 483

	* source/cmt_project.h: In class Project function find_in_cmt_paths, add
	second boolean parameter to specify whether first argument is real path
	* source/cmt_project.cxx: In class Project, in function find_in_cmt_paths,
	do not call CmtSystem::realpath_ if boolean parameter is true, in function
	order_all, make use of m_realpath from class Use
	* source/cmt_use.h: In class Use, introduce member m_realpath to hold
	canonicalized absolute real_path, and member function get_realpath
	* source/cmt_use.cxx: In class Use, in function change_path, calculate
	m_realpath, in functions get_cmtpath_and_offset and get_strategy, make use
	of m_realpath when calling Project::find_in_cmt_paths
	* source/cmt_symbol.cxx: In find_path_entry helper function, introduce
	static cache of real paths in order to optimise CmtSystem::realpath_ usage
	
2012-04-03    <rybkin@lal.in2p3.fr> 482

	* source/cmt_syntax.cxx: In class SyntaxParser function
	do_parse_requirements, check return value of string read function and set
	error on failure, re-write function do_parse_text in order to optimise
	* source/cmt_awk.cxx: In class Parser, re-write function parse in order
	to optimise, in class Awk function run, test CMTTESTAWK environment
	variable in debug mode only, re-write function run in order to optimise
	* source/cmt_string.cxx: In class cmt_string, make function resize set size
	and terminate string with 0, optimise functions substr (int, int),
	substr (int, int, cmt_string&)
	* source/cmt_pattern.cxx: In class Pattern functions test CMTTESTPATTERN
	environment variable in debug mode only
	* source/cmt_regexp.cxx: In class cmt_and_node function match, class
	cmt_or_node function match, class cmt_regexp function set, test
	CMTTESTREGEXP environment variable in debug mode only
	* source/cmt_parser.cxx: In class Cmt function set_standard_macros, test
	TAGDEBUG environment variable once
	* source/cmt_system.cxx: In class CmtSystem, re-write function realpath_
	making use of system functions realpath (POSIX) and _fullpath (Windows)
	* source/cmt_use.cxx: In class Use function get_cmtpath_and_offset, check
	return value of CmtSystem::realpath_ and set error on failure
	* source/cmt_project.cxx: In class Project function find_in_cmt_paths check
	return value of CmtSystem::realpath_ and return on failure, do not test
	existence of project cmt paths as they must exist
	* source/cmt_symbol.cxx: In find_path_entry helper function, make use of
	CmtSystem::realpath_ for paths comparison

2012-03-26    <rybkin@lal.in2p3.fr> 481

	* source/cmt_deps_builder.cxx: Re-write function build_deps_text in order
	to optimise (make more than 4 times faster), in function
	in_line_comment_action, do not check for backslash characters as all
	continuation characters are already deleted
	* mgr/Unix.make: Add -static to LDFLAGS if STATIC set to 1
	
2012-03-09    <rybkin@lal.in2p3.fr> 480
	
	* mgr/cmt_svn_checkout.py: Set the "C" locale

2012-02-13    <rybkin@lal.in2p3.fr> 479

	* mgr/GNUmakefile: Do not rebuild dependencies file with cmt after from
	scratch build since it will be rebuilt upon next build, rebuild cmt.make
	Makefile if requirements changes, introduce clean target
	* mgr/cmt.make: Update
	* mgr/Unix.make: Add macros needed for updated cmt.make
	
2012-01-27    <rybkin@lal.in2p3.fr> 478

	* source/cmt_parser.cxx: In class Cmt function print_clean, use unset on
	set variables only to work around Z Shell unset builtin command being POSIX
	non-conformant (exit code of 1 on unset variables)
	* source/cmt_symbol.cxx: In class Symbol functions print_clean, print, idem
	
2012-01-06    <rybkin@lal.in2p3.fr> 477

	* mgr/fragments/packages_header: Allow LOG_SUFFIX to be configured with
	environment variable, simplify expressions for Package_failure_handler
	* mgr/fragments/nmake/packages_header: idem
	* mgr/fragments/package: Introduce use of Package_failure_handler in case
	NO_ALL_GROUPS is set, for clean, binclean, uninstall, check targets,
	capture stderr and stdout into log file in case	BCAST_CMD is list of
	commands or compound command, for clean, uninstall, check targets, use
	simplified Package_failure_handler
	* mgr/fragments/nmake/package: idem
	* src/Makefile.header: Add <package>clean target to help message
	
2011-12-23    <rybkin@lal.in2p3.fr> 476

	* source/cmt_commands.cxx: In class ArgParser function do_create, check if
	at least 2 arguments specified and set error otherwise
	* source/cmt_symbol.cxx: In class SymbolValueList function print, add
	comments only if Verbose level (of diagnostic messages) is activated so as
	to make Requirements mode setup output shorter
	* source/cmt_system.h: In class CmtSystem, make functions file_separator,
	path_separator, command_separator inline, remove function cwd_variable
	* source/cmt_system.cxx: Introduce and make use of cwd_env_var preprocessor
	macro, on Windows, use _unlink, _chmod, _putenv instead of deprecated -
	beginning in Visual C++ 2005 - POSIX names functions
	* source/cmt_generators.cxx: In class PackagesMakefileGenerator function
	build, add template PACKAGEPREFIX for package_fragment
	* source/cmt_parser.cxx: In class Cmt function do_build_broadcast_config,
	add <package>_offset, <PACKAGE>VERSION macros to broadcast tags file
	* mgr/fragments/packages_header: Include broadcast tags file
	* mgr/fragments/nmake/packages_header: idem
	* mgr/fragments/nmake/package: Add package info (name, version, offset) to
	diagnostic messages, making use of added macros in tags file
	* mgr/fragments/package: idem, use redirection operator (rather than touch)
	to create empty or truncate existing package log file
	* mgr/fragments/nmake/library: For clean target, remove constituent
	directory and manifest file
	* mgr/fragments/nmake/library_no_static: idem
	* mgr/fragments/nmake/library_no_share: For clean target, remove
	constituent directory
	* mgr/fragments/nmake/cleanup_application: For clean target, remove
	manifest file
	
2011-12-11    <rybkin@lal.in2p3.fr> 475

	* source/cmt_error.h: In class CmtError, introduce system_error code
	* source/cmt_error.cxx: In class TheError, in constructor add introduced
	system_error code string name
	* source/cmt_parser.cxx: In class Cmt, in function do_create, check return
	value of all invoked functions, set error on failure making use of
	system_error code, and return, so that exit value of "cmt create" command
	be set according to command success/failure

2011-12-11    <rybkin@lal.in2p3.fr> 474

	* source/cmt_system.cxx: In class CmtSystem, in function cd, do not print
	error message on system chdir function failure, in functions test_directory,
	test_file, do not set error or print error message on system stat function
	failure, in functions create_symlink, remove_file, on POSIX systems, do not
	print error message or return failure on system unlink function failure for
	errno == ENOTDIR
	* source/cmt_use.cxx: In function uninstall_library, always remove
	reference file with internal command (as create)
	* mgr/cmt_install_action.sh: Exit with error on file command or reference
	file command error
	* mgr/cmt_uninstall_action.sh: idem
	* mgr/cmt_install_action.bat: idem
	* mgr/cmt_uninstall_action.bat: idem
	
2011-12-10    <rybkin@lal.in2p3.fr> 473

	* source/cmt_system.cxx: In class CmtSystem, when using system stat
	function on POSIX systems, do not set error for errno == ENOTDIR

2011-12-09    <rybkin@lal.in2p3.fr> 472

	* source/cmt_system.h: In class CmtSystem, introduce function cwd_variable
	* source/cmt_system.cxx: In class CmtSystem, implement function
	cwd_variable, in functions pwd, cd make use of cwd_variable, in function cd
	do not put cwd_variable into environment on Windows
	* source/cmt_use.cxx: In class UseContext function mask_auto_imports
	switch,	add default path to avoid warning on Windows
	* source/cmt_fragment.cxx: In class Fragment function print, return 0 if
	fragment not located, in function locate leave path empty if fragment not
	located, in function copy, set error on read failure
	* source/cmt_generators.cxx: In class DocumentGenerator function build,
	return on dependency_fragment copy errors, in class
	PackagesMakefileGenerator function build, return on fragments copy errors
	* source/cmt_generator.h: In class InGenerator, add member pedantic
	* source/cmt_generator.cxx: In class Generator function
	build_constituent_infile, return value of class InGenerator build function,
	in class InGenerator class Buffer function print check return value of
	function initialize and return on error, in class InGenerator classes
	Languages and Fragments function initialize set error if language or
	fragment not found, and return number of errors, In class InGenerator
	function build, check return value of fragments print function, set error
	and return number of errors, if pedantic is enabled
	* source/cmt_parser.cxx: In class Cmt functions
	do_build_constituent(s)_config,	set error if tag undefined or empty
	* mgr/fragments/nmake/dependency: Introduce fragment for document NMakefile
	generation
	* mgr/fragments/nmake/package: Introduce fragment for broadcast NMakefile
	generation
	* mgr/fragments/nmake/packages_header: idem
	* mgr/fragments/nmake/packages_trailer: idem
	* mgr/fragments/nmake/dependencies: Use $(build_dependencies) command with
	dependencies infile and include directories and source files supplied
	via CLI, rebuild as needed regardless of QUICK mode
	* mgr/fragments/nmake/constituent: In QUICK mode, rebuild constituent
	NMakefile if any requirements file changes, do not rebuild for uninstall
	target
	* mgr/fragments/nmake/constituent_lock: idem
	* mgr/fragments/nmake/group: Remove dependency on makefilesclean
	* mgr/fragments/nmake/constituents_header: Specify explicit (with empty
	command) rules for requirements files for optimisation
	* mgr/fragments/nmake/constituents_trailer: Remove remove_library_links,
	makefilesclean targets (not needed), move binclean target to
	NMakefile.header
	* mgr/fragments/nmake/make_header: Define dependencies infile for use with
	$(build_dependencies) command
	* mgr/fragments/nmake/cpp: Add explicit dependency on source file to
	${CONSTITUENT}_dependencies.nmake
	* mgr/fragments/nmake/cpp_library: idem
	* mgr/fragments/nmake/c: idem
	* mgr/fragments/nmake/c_library: idem
	* mgr/fragments/nmake/fortran: idem
	* mgr/fragments/nmake/fortran_library: idem
	* mgr/fragments/nmake/lex: idem
	* mgr/fragments/nmake/lex_library: idem
	* mgr/fragments/nmake/yacc: idem
	* mgr/fragments/nmake/yacc_library: idem
	* src/NMakefile.core: Add .in to known suffixes
	* src/NMakefile.header: Introduce and implement BCAST mode, making use of
	cmt build broadcast_config command. In QUICK mode, rebuild constituents or
	broadcast NMakefile and corresponding macros files if any requirements file
	changes, extend dynamic help messages on targets available for BCAST mode
	* src/setup.bat: Enable CMT QUICK mode
	* src/Makefile.header: Improve help message, minor code cleanup
	* mgr/fragments/make_header: Minor code cleanup
	* mgr/fragments/constituents_header: Remove makefiles target
	* mgr/fragments/constituents_trailer: Remove makefilesclean target
	* mgr/fragments/package: Add check target
	* mgr/fragments/packages_trailer: idem
	* mgr/fragments/packages_header: idem, make Package_failure_handler for
	ignore PACKAGE_FAILURE_POLICY always return 0
	
2011-12-02    <rybkin@lal.in2p3.fr> 471

	* source/cmt_system.cxx: In class CmtSystem functions, add cmt name into
	system functions error messages, rename helper function to get_absolute_path
	
2011-12-01    <rybkin@lal.in2p3.fr> 470

	* mgr/fragments/application: Specify explicit empty command in (un)install
	target rules (for optimisation to avoid implicit rule search)
	* mgr/fragments/library: idem
	* mgr/fragments/library_no_share: idem
	* mgr/fragments/library_no_static: idem
	* mgr/fragments/check_application: idem in check target rule
	
2011-11-30    <rybkin@lal.in2p3.fr> 469

	* source/cmt_system.cxx: In class CmtSystem functions, check return value
	of system functions getcwd, chdir, stat, unlink, symlink, rmdir, mkdir,
	tmpnam,	putenv, as well as of cmt_string class read function and propagate
	it via return value, or via setting error, and/or by printing error message
	* mgr/fragments/dependencies: Remove dependencies Makefile (and stamps)
	for constituent clean target
	
2011-11-29    <rybkin@lal.in2p3.fr> 468

	* source/cmt_generators.cxx: In class DependencyGenerator, function reset,
	set default name to "cmt_unnamed", in function prepare_header_file_filters,
	do not create filter, if corresponding macro is defined with empty value
	* source/cmt_generator.cxx: In class Generator, function
	build_dependencies_infile, do not write header file filters macro, if it is
	defined with empty value
	* source/cmt_constituent.cxx: Minor code cleanup
	* mgr/fragments/library: Pass necessary for script $(make_shlib) macro
	values via environment
	* mgr/cmt_make_shlib_common.sh: Take necessary macro values from
	environment, if available, rather than invoke CMT multiple times to compute
	* mgr/cmt_uninstall_action.sh: Unset CMTDEBUG if set in order to avoid
	debug output interference with script, and enable shell trace mode

2011-11-28    <rybkin@lal.in2p3.fr> 467

	* source/cmt_generators.cxx: In class DependencyGenerator, function build,
	make constituent name optional for command cmt build dependencies
	* source/cmt_commands.cxx: Update command help info, in class CommandHelp,
	functions show, show_all, print help info on stdout (rather than stderr)
	* mgr/fragments/dependencies: Specify constituent name via option value
	* source/cmt_vcs.cxx: In class Vcs, function help, print help info on
	stdout (rather than stderr)
	
2011-11-28    <rybkin@lal.in2p3.fr> 466

	* source/cmt_constituent.cxx: In class Constituent, in function parse,
	keep associated tag target_<name> only if this tag is used in tag or symbol
	expression
	
2011-11-27    <rybkin@lal.in2p3.fr> 465

	* source/cmt_system.cxx: In function CmtSystem::remove_file, do not use
	custom error message
	* source/cmt_symbol.h: In class Symbol, add const qualifier to
	check_tag_used function	argument, to resolve_macro_value function
	* source/cmt_symbol.cxx: idem, add same actions for
	action_build_broadcast_config as for action_build_constituents_config,
	action_build_constituent_config
	* source/cmt_use.h: In class Use, introduce absolute_library_path,
	remove_library_links functions
	* source/cmt_use.cxx: Implement introduced functions, in install_library
	helper function, check return value of called functions, set error (rather
	than print error message) as appropriate, implement uninstall_library
	helper function, refactor build_library_links function to use
	absolute_library_path
	* source/cmt_deps_builder.h: Make m_filter member of class
	DepsBuilder::HeaderFilter to be owned by class and cleared accordingly
	* source/cmt_deps_builder.cxx: In header_file_action, build_deps functions
	check return value of read function, set error as appropriate, also set
	error if path specified for dependencies calculation not found. In class
	DepsBuilder, run function, pass $(app_$(CONSTITUENT)_cppflags),
	$(lib_$(CONSTITUENT)_cppflags) to external dependencies generator specified
	via preprocessor_command macro, if any
	* source/cmt_generators.h: In classes DocumentGenerator, LibraryGenerator,
	in function build, introduce argument bool& dependencies, in class
	DocumentGenerator, introduce members Variable m_FILEEXTENSION,
	FragmentHandle dependency_fragment, in class LibraryGenerator, declare
	specific function fill_names_outputs. Introduce class
	PackagesMakefileGenerator, rewrite class DependencyGenerator
	* source/cmt_generators.cxx: In class LibraryGenerator, implement
	fill_names_outputs, in class DocumentGenerator function build, add
	dependency_fragment for each source file with additional template
	FILEEXTENSION (also added for fragment) so that
	${CONSTITUENT}_dependencies.make gets rebuilt whenever source file OR its
	dependencies change. Implement class PackagesMakefileGenerator used to
	build BCAST mode Makefile. In class DependencyGenerator, re-implement
	function build (const CmtSystem::cmt_string_vector&) so that it makes use
	of files and includes from CLI input, if any, enhance its algorithm,
	enhance	function prepare_header_file_filters so that it makes use of input
	file dependencies[_CONSTITUENT].in without CMT
	* source/cmt_generator.h: In class CmtGenerator, remove prepare_use_context
	function, m_deps_builder member. In class Generator, introduce argument
	bool& dependencies in build_constituent_makefile function, declare
	build_library_links_infile, build_dependencies_infile,
	build_packages_makefile functions
	* source/cmt_generator.cxx: In class CmtGenerator function reset, reset
	m_bin, m_output_file_name, m_output_file, m_constituent members, in class
	Generator, implement build_library_links_infile, build_dependencies_infile,
	build_packages_makefile functions, in class InGenerator constructor, add
	document dependency fragment
	* source/cmt_constituent.h: In class Constituent, change add_for_action
	function signature
	* source/cmt_constituent.cxx: In class Constituent, in function parse,
	do not treat action_value variable definition specially, in function
	add_for_action, do not assign target_<name> tag to document corresponding
	to action by default but only if this tag is used somewhere
	* source/cmt_commands.cxx: In class ArgParser, in function do_build,
	introduce broadcast_config command and its options processing, enhance
	dependencies command options processing so that it makes use of files and
	includes from CLI input and can have global options specified mixed with
	its options. In class CommandHelp, in constructor, add help info for
	broadcast_config, dependencies commands
	* source/cmt_parser.h: In enumeration ActionType, add value
	action_build_broadcast_config
	* source/cmt_parser.cxx: In class Cmt, in function do_broadcast, unset
	CMTBCAST variable in environment of command(s) being broadcast to avoid
	looping, in function do_build_constituent_config, generate dependencies
	infile if needed only, incorporate call to do_check_configuration into
	function do_build_constituents_config so as not	to invoke
	cmt check configuration command in Makefile, as part of
	do_build_constituents_config, generate library_links infile, and
	dependencies infile for constituents without target tag, implement function
	do_build_broadcast_config to generate broadcast Makefile, and broadcast
	specific macros Makefile, enhance do_build_library_links function to work
	with generated library_links infile, make function do_check_configuration
	set error if non-constant cmtpath_pattern found for package outside CMTPATH
	- cannot be applied, re-implement do_remove_library_links function making
	use of remove_library_links from class Use. In function
	fill_for_all_constituents of class StandardMacroBuilder, 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
	* source/cmt_cmtpath_pattern.h: In class CmtPathPattern, introduce function
	is_constant
	* source/cmt_cmtpath_pattern.cxx: Implement is_constant function
	* source/cmt.h: In class Cmt, introduce function do_build_broadcast_config
	* mgr/fragments/package: Introduce fragment for broadcast Makefile
	generation
	* mgr/fragments/packages_header: idem
	* mgr/fragments/packages_trailer: idem
	* mgr/fragments/dependency: Introduce fragment for document Makefile
	generation
	* mgr/fragments/dependencies: Use $(build_dependencies) command with
	dependencies infile and include directories and source files supplied
	via CLI
	* mgr/fragments/constituent: In QUICK mode, rebuild constituent Makefile if
	any requirements file changes. Make constituent uninstall targets
	independent of constituent Makefile (so that no rebuild happens before
	uninstall), make remove_library_links dependent on constituent uninstall
	targets to ensure library links uninstallation order
	* mgr/fragments/constituent_lock: idem
	* mgr/fragments/constituents_header:  In QUICK mode, run
	$(build_library_links) command with library_links infile, if any
	requirements file changes, keep .DEFAULT target if PEDANTIC is undefined,
	specify explicit (with empty command) rules for requirements files for
	optimisation
	* mgr/fragments/constituents_trailer: In QUICK mode, run
	$(remove_library_links) command with library_links infile,  make uninstall
	target (rather than clean target) dependent on remove_library_links target
	to ensure library links uninstallation
	* mgr/fragments/make_header: Define dependencies infile for use with
	$(build_dependencies) command
	* mgr/fragments/cpp: Add explicit dependency on source file to
	${CONSTITUENT}_dependencies.make
	* mgr/fragments/cpp_library: idem
	* mgr/fragments/c: idem
	* mgr/fragments/c_library: idem
	* mgr/fragments/fortran: idem
	* mgr/fragments/fortran_library: idem
	* mgr/fragments/lex: idem
	* mgr/fragments/lex_library: idem
	* mgr/fragments/yacc: idem
	* mgr/fragments/yacc_library: idem
	* mgr/requirements: Declare fragments package, packages_header,
	packages_trailer, dependency
	* src/Makefile.core: Add .in to known suffixes
	* src/Makefile.header: Introduce and implement BCAST mode, making use of
	cmt build broadcast_config command. In QUICK mode, rebuild constituents or
	broadcast Makefile and corresponding macros files if any requirements file
	changes, specify explicit (with empty command) rules for requirements files
	for optimisation, implement dynamic help messages on targets available for
	BCAST mode
	* src/setup.csh: Set MAKEFLAGS, if unset, to set number of job slots to
	number of processors, and enable CMT QUICK mode
	* src/setup.sh: idem. Use only shell parameter expansion to determine
	whether	shell is intercative.

2011-07-06    <rybkin@lal.in2p3.fr> 464

	* src/setup.bash: Simplify _cmt_escape_compreply function
	
2011-07-05    <rybkin@lal.in2p3.fr> 463

	* src/setup.tcsh: Offer CVS related commands for completion if CVSROOT is
	set and not null only, provide completions for make and run commands
	* src/setup.zsh: idem, try default completion if no match found
	* src/setup.sh: Test for BASH and define command completion for it if
	appropriate
	* src/setup.bash: Implement command completion for BASH
	
2011-06-27    <rybkin@lal.in2p3.fr> 462

	* src/setup.zsh: Do not execute if zsh is invoked in other shell (e.g.,
	sh, ksh) compatibility mode
	* src/setup.sh: Do not test for zsh with string leading to syntax error
	in other shells (as POSIX conformant non-interactive shell exits, case
	with BASH versions > 4), define command completions for interactive shell
	only
	* src/setup.csh: Define command completions for interactive shell only
	
2011-06-22    <rybkin@lal.in2p3.fr> 461

	* src/setup.tcsh: Improve/fix word completions for tcsh
	* src/setup.zsh: Improve/fix word completions for zsh
	* src/setup.csh: Ensure tcsh is always identified and word completions are
	defined
	
2011-06-09    <rybkin@lal.in2p3.fr> 460

	* source/cmt_use.cxx: In class Use, function reach_package, add	package
	selection criterion based on <package>_native_version (-native_version=VERSION option)
	in case of CMT structuring style without_version_directory (similarly to
	style with_version_directory), in function add, add mention of
	native_version, if specified, to warning message
	* source/cmt_use.h: In class Use, make function clear public (rather than
	making class Project friend)
	
2011-06-08    <rybkin@lal.in2p3.fr> 459

	* source/cmt_regexp.h: In class cmt_regexp, introduce clear function
	* source/cmt_regexp.cxx: In class cmt_regexp, implement clear function
	* source/cmt_use.h: In class Use, make class Project friend (to give access
	to function clear)
	* source/cmt_use.cxx: In class Use, function clear, clear new members
	alternate_is_head_versions and m_head_version, in class UseProjectAction,
	function run, clear Use new member alternate_is_head_versions
	* source/cmt_project.h: In class Project, make copy constructor and
	assignment operator private
	* source/cmt_project.cxx: In class Project, function container_action,
	invoke clear function on container (rather than destructor)
	
2011-05-10    <rybkin@lal.in2p3.fr> 458

	* source/cmt_system.cxx: In class CmtSystem, in functions quote, mangle,
	correct conversion specification in sprintf
	* source/cmt_use.cxx: In class Use, in function	set_auto_imports, idem
	* mgr/fragments/nmake/constituent: Generate constituent Makefile from input
	requirements file (with -f, -without_cmt options) for constituent without
	associated tag
	* mgr/fragments/nmake/constituent_lock: idem
	* mgr/Unix.make: Invoke compiler as c++ for any Darwin platform, do not
	use recent GNU Make features, specify arch i386 or x86_64 explicitly for
	relevant Darwin platforms
	* mgr/GNUmakefile: Use ln with -f option
	
2011-05-04    <rybkin@lal.in2p3.fr> 457

	* source/cmt_use.h: In class Use, declare function set_auto_imports_state
	with modified signature to follow policy similar to that of function
	set_auto_imports
	* source/cmt_use.cxx: In class Use, in function	set_auto_imports_state,
	implement policy similar to that of function set_auto_imports
	* source/cmt_parser.cxx: In class StandardMacroBuilder, in function
	fill_for_all_constituents, make use of set_auto_imports_state with modified
	signature
	
2011-05-02    <rybkin@lal.in2p3.fr> 456

	* source/cmt_use.cxx: In class Use, in function	show_sub_uses, make output
	of "cmt show uses" command compatible with original as it is used by tools,
	tbroadcast, for example, in function set_auto_imports, increase/decrease
	level before/after considering sub-uses
	
2011-04-29    <rybkin@lal.in2p3.fr> 455

	* source/cmt_use.h: In class Use, declare function show_sub_uses with
	modified signature to show, in more detail, origin of uses auto_imports
	state
	* source/cmt_use.cxx: In class Use, in function set_auto_imports,
	implement policy where use has Off != auto_imports, if it is (direct)
	sub-use without -no_auto_imports of either current use or sub-use with
	Off != auto_imports, implement function show_sub_uses with modified
	signature, in function show_all, make use of show_sub_uses with modified
	signature
	
2011-04-25    <rybkin@lal.in2p3.fr> 454

	* source/cmt_use.cxx: In class Use, in function show_sub_uses, make use of
	find_valid ensure valid uses are followed
	
2011-04-23    <rybkin@lal.in2p3.fr> 453

	* source/cmt_use.cxx:  In class	Use, in function set_auto_imports_state,
	revisit uses specified explicitly with -import=<package> encountered in
	constituent specification for the first time, to ensure <package> is
	imported, in function set_auto_imports, revisit sub-uses of current use
	encountered in its requirements file for the first time to ensure their
	auto_imports state takes precedence
	
2011-04-20    <rybkin@lal.in2p3.fr> 452

	* source/cmt_awk.cxx: Add explicitly include <limits.h> to define PATH_MAX,
	to fix build failure on Debian
	* source/cmt_system.cxx: idem

2011-04-20    <rybkin@lal.in2p3.fr> 451

	* source/cmt_tag.h: In class Tag, in function mark, introduce mandatory
	argument (to pass context), introduce member m_act_context to hold context
	of tag activation, use package name, if available
	* source/cmt_tag.cxx: In function mark, implement use of introduced
	argument, make use of it in all function mark invocations, in functions
	unmark_all, restore_tree, mark, add, introduce or enhance debug messages.
	In function show_definition, print m_act_context with prefix "activated",
	if does not duplicate already printed information, to provide tag
	activation context in "cmt show tags" command output
	* source/cmt_syntax.cxx: In class SyntaxParser, in function
	parse_requirements, pass tag activation	context to class Tag function mark
	via argument
	* source/cmt_commands.cxx: In class ArgParser, in functions do_do,
	option_tag, option_tag_add, option_tag_remove, idem
	* source/cmt_project.cxx: In class Project function order_all, in class
	Strategy function update, idem
	* source/cmt_parser.cxx: In class Cmt, in functions configure_config_tag,
	configure_hosttype_tag, configure_site_tag, restore_all_tags,
	configure_tags, configure_uname_tag, configure_devenv_tag,
	configure_version_tag, load, reach_current_package, use_extra_file, idem.
	In class Cmt, in function do_check_configuration, for standalone package,
	if current use is outside CMTPATH (and action is not action_setup) do not
	issue warning or set error
	
2011-04-18    <rybkin@lal.in2p3.fr> 450

	* source/cmt_parser.cxx: In class Cmt, in function do_check_configuration,
	if current use is outside CMTPATH (and action is not action_setup) issue
	warning or set error, provided [CMT]PEDANTIC environment variable is set,
	thus adding this check to "cmt check configuration" command
	
2011-04-15    <rybkin@lal.in2p3.fr> 449

	* source/cmt_use.h: In class Use, introduce functions find_valid,
	is_head_version, members m_head_version, alternate_is_head_versions
	* source/cmt_use.cxx: Implement functions find_valid, is_head_version.
	Make use of find_valid in functions set_auto_imports_state,
	set_auto_imports to ensure valid uses are followed. Make use of
	is_head_version, in functions reach_package, add, of
	alternate_is_head_versions, in function select_alternate, to ensure
	head version satisfies any request and takes precedence
	
2011-04-12    <rybkin@lal.in2p3.fr> 448

	* source/cmt_awk.cxx: In class FAwk, in functions run, return failed on
	error reading file
	* source/cmt_system.cxx: In class CmtSystem, introduce and implement
	functions mangle
	* source/cmt_system.h: idem
	* source/cmt_install_area.cxx: In class CmtInstallAreaMgr, in function
	build_current_installarea, make use of Use::current (instead of pwd)
	* source/cmt_commands.cxx: In class ArgParser, functions
	option_with(out)_cmt, add -with(out)_cmt to cmtflags
	* source/cmt_project.cxx: In class Project, in function find_in_cmt_paths,
	do not invoke pwd
	* source/cmt_symbol.cxx: In class Symbol, in function create, suppress
	warning about set/macro <PACKAGE>ROOT for current package, in function
	action, use mangled package prefix with scripts, in function print_clean,
	use mangled set, path names with corresponding message, and quoted path,
	script values for cleanup scripts, in function print, use mangled set, path
	names with corresponding message, and quoted script values for setup
	scripts. In class SymbolValueList, in function print, output CMT package
	symbols as well
	* source/cmt.h: In class Cmt, introduce universal function install_scripts
	for both types of scripts, and function get_cmt_flags working on file, drop
	functions install_test_cleanup_scripts, install_test_setup_scripts
	* source/cmt_parser.cxx: In class Cmt, in functions do_config, do_relocate,
	retrieve cmtflags from input requirements file and current cmtflags, if any,
	and pass them to universal function install_scripts, in function do_setup,
	output cmtflags in Requirements mode inverting -with(out)_cmt, implement
	function get_cmt_flags working on file, universal function install_scripts,
	move static function mangle to class CmtSystem, in functions print_clean,
	print_context, use mangled package prefix in cleanup, setup scripts, in
	function set_standard_macros, create StandardMacroBuilder instance for
	Use::current (rather than Me). In class StandardMacroBuilder, in constructor,
	do not invoke pwd, in functions fill_for_package, fill_for_current_package,
	do not use argument, in function fill_for_branches, do not use pwd. 
	
2011-03-22    <rybkin@lal.in2p3.fr> 447

	* source/cmt_use.cxx: In class Use, in functions, set_auto_imports_state,
	set_auto_imports change order of setting auto_imports state to from first
	to last, depth first, and first encountered taking precedence
	* source/cmt_parser.cxx: In class Cmt, in function parser, configure
	auto_imports state using same order as above
	* source/cmt_fragment.cxx: Make diagnostic message more informative
	
2011-03-16    <rybkin@lal.in2p3.fr> 446

	* source/cmt_use.h: In class Use, change signature of functions
	set_auto_imports_state, set_auto_imports
	* source/cmt_use.cxx: In helper class UseContext, introduce and implement
	function mask_auto_imports, in class use_action_iterator, in function
	get_use, do not deal with auto_imports state of added Use object. In class
	Use, function add, ensure that finally chosen Use object gets appended to
	sub_uses of context_use, it is used when setting auto_imports states.
	Implement functions set_auto_imports_state, set_auto_imports with modified
	signatures making sure all sub uses are operated upon recursively, order
	from last to first, depth first, and first encountered taking precedence
	* source/cmt_parser.cxx: In class Cmt, in function parser, configure
	auto_imports state of all uses after all requirements have been read. In
	class StandardMacroBuilder, in function fill_for_all_constituents, ensure
	that all sub uses of imported packages are also imported if not	imported
	yet and not specified with -no_auto_imports option
	* source/cmt_project.cxx: In class ProjectFactory function create_project,
	use set_auto_imports with modified signature
	
2011-03-08    <rybkin@lal.in2p3.fr> 445

	* source/cmt_parser.cxx: In class Cmt, in function do_config, remove
	constituent input requirements file(s), backup Makefile fragments, do not
	invoke function reach_current_package (done before do_config). In function
	parser, invoke class SyntaxParser function parse_requirements_text with
	extra statements, if any, thereby making -e=<extra-statement(s)> functional
	* source/cmt_commands.cxx: In class ArgParser function option_e, do not
	print warning when extra statement(s) are provided on command line
	* mgr/fragments/cleanup_header: With PEDANTIC set, fail for taget without
	rule, using Make function error
	* mgr/cmt_svn_checkout.py: Rename cmt/version.cmt and issue warning if
	under version control and checked out with CMT structuring style
	with_version_directory
	
2011-03-07    <rybkin@lal.in2p3.fr> 444

	* source/cmt_system.cxx: In class CmtSystem, introduce function quote
	* source/cmt_system.h: idem
	* source/cmt_fragment.cxx: In class fragment_action_iterator, function
	add_word, ensure that header, trailer fragments are overridden, if declared
	again, introduce, parse and set for current use fragment m_path. In class
	Fragment, in function add, introduce argument path, in function print
	introduce PrintMode, ostream arguments and add implementation for
	Requirements mode, in function locate, optimise fragment search, add
	warning, if not found. In class FragmentHandle, in functions copy do not
	print info message about not found fragment, in function setup make such
	message warning
	* source/cmt_fragment.h: idem
	* source/cmt_constituent.cxx: In class Constituent, in function show
	introduce argument ostream, make use of class CmtSystem function quote
	* source/cmt_constituent.h: idem
	* source/cmt_language.cxx: In class Language, introduce members m_use,
	m_dependencies_options_expanded, function dependencies_options_expanded, in
	function show, introduce PrintMode, ostream arguments and add
	implementation for Requirements mode, in function action, introduce
	argument Use*
	* source/cmt_language.h: idem
	* source/cmt_syntax.cxx: Make use of modified class Language function action
	* source/cmt_symbol.cxx: Remove helper function quote
	* source/cmt.h: In class CmtContext, introduce member m_use_cmt, in class
	Cmt, function use_extra_file
	* source/cmt_generators.h: In class ConstituentsMakefileGenerator function
	build use package, and file arguments only
	* source/cmt_generators.cxx: In class LibraryGenerator, in function,
	java_file_action do not test for output file existence, in function build,
	do not invoke function prepare_use_context. In class DocumentGenerator, in
	function build, do not invoke function filter_path, prepare_use_context,
	get_all_files for second time, do not check for existence of source file or
	issue warning (done in function analyze_file), in function analyze_file, do
	not define variable output_dir. In class ConstituentsMakefileGenerator
	function build, use file argument rather than parse string vector
	* source/cmt_generator.h: Introduce class InGenerator, in class Generator
	function build_constituents_makefile, use file argument rather than string
	vector, introduce function build_constituent_infile
	* source/cmt_generator.cxx: Implement introduced class and function in
	order to generate input constituent requirements file
	* source/cmt_commands.h: Introduce global options -with_cmt, -without_cmt
	* source/cmt_commands.cxx: Implement options -with_cmt, -without_cmt,
	global and for commands "build constituent makefile", "build constituents
	config", enhance options parsing for commands "build constituent(s)
	makefile/config", improve error handling, diagnostic and help messages
	* source/cmt_parser.cxx: Enhance options parsing and error handling in Cmt
	class functions	do_build_constituent(s)_makefile,
	do_build_constituent(s)_config, generate input requirements file for
	constituent(s) without associated tag in function
	do_build_constituents_config. In function parser, handle help requests
	immediately after parse_arguments, do not use CMT if requested, use extra
	file instead of requirements, if specified, via implemented function
	use_extra_file
	* mgr/fragments/constituent: Generate constituent Makefile from input
	requirements file (with -f, -without_cmt options) for constituent without
	associated tag
	* mgr/fragments/constituent_lock: idem
	* mgr/cmt_make_shlib_common.sh: Improve error handling, unset CMTDEBUG if
	set in order to avoid debug output interference with script
	* mgr/cmt_install_action.sh: idem
	* mgr/requirements: Do not declare readme_doc fragment (not provided)
	
2010-09-07    <rybkin@lal.in2p3.fr> 443

	* mgr/Unix.make: Derive mode/architecture from CMTBIN or from command line
	switch M32/M64 and specify it explicitly for g++
	* mgr/GNUmakefile: Do not recreate cmt->cmt.exe symlink if exists
	
2010-09-04    <rybkin@lal.in2p3.fr> 442

	* mgr/Unix.make: Introduce tag specific Makefile (derived from part of
	mgr/Makefile) with macro definitions for Unix-like systems, allows for user
	overrides/extra flags via CXXFLAGS, LDFLAGS, TARGET_ARCH variables
	* mgr/GNUmakefile: Introduce Makefile (derived from mgr/Makefile) which
	builds CMT with standard constituents.make file section, e.g., includes
	core definitions, mgr/Unix.make as tag specific Makefile, rebuilds cmt.make
	* mgr/cmt.make: Include core definitions, tag specific Makefile - similarly
	to when building any other application/library
	
2010-09-01    <rybkin@lal.in2p3.fr> 441

	* mgr/requirements: Do not modify MAKEFLAGS
	* src/Makefile.core: Append --no-print-directory to MAKEFLAGS when echoing
	Make commands
	
2010-08-27    <rybkin@lal.in2p3.fr> 440

	* source/cmt_parser.cxx: In class Cmt, in functions
	do_build_constituent(s)_config, call clear on file stream after closing it,
	necessary in case close fails, e.g., file does not exist (the case with
	Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86,
	but does not seem to be the case with gcc 4.1.2)
	* src/NMakefile.header: Check exit code of commands and use error Makefile
	preprocessing directive, if appropriate
	
2010-08-25    <rybkin@lal.in2p3.fr> 439

	* source/cmt_parser.cxx: In class Cmt, in function
	configure_current_package for standalone case, do not (re)set
	m_current_structuring_style yet, rather do it in reach_current_package
	
2010-08-25    <rybkin@lal.in2p3.fr> 438

	* source/cmt_parser.cxx: In class Cmt, in functions install_setup_scripts,
	install_cleanup_scripts, install_test_setup_scripts,
	install_test_cleanup_scripts, dos_script_prefix, ensure that in
	setup/cleanup scripts, shell variable name holding temporary file name
	- with script contents - contains package name, so as to avoid name clashes
	in case user provided scripts invoke CMT generated setup/cleanup scripts
	from other packages (which lead to temporary file not being cleaned up).
	In functions do_config, do_relocate, do not use functions
	install_test_setup_scripts, install_test_cleanup_scripts for standalone
	package, use install_setup_scripts, install_cleanup_scripts instead as for
	standard packages
	
2010-08-24    <rybkin@lal.in2p3.fr> 437

	* source/cmt_project.cxx: In class Project function order_all, consider for
	ordering projects (which may come from CMTPATH entries) other than current
	in case current project does not have parents (may have children), unmark
	tag with project name as appropriate, in function add, print error message
	about conflicting releases without mode	Verbose, in function create, fix
	typo in diagnostic message. In class ProjectFactory function create_project,
	add more info to debug message
	
2010-08-23    <rybkin@lal.in2p3.fr> 436

	* source/cmt_project.cxx: In class ProjectFactory function create_project,
	in case of project requested with conflicting releases, issue warning, do
	not set CmtError
	
2010-08-23    <rybkin@lal.in2p3.fr> 435

	* source/cmt_commands.h: Introduce option -xml to produce output in XML
	format, currently for commands "cmt setup", "cmt show projects",
	"cmt show uses"
	* source/cmt_commands.cxx: Implement function option_xml
	* source/cmt.h: In class Cmt, introduce function print_xml_prolog
	* source/cmt_parser.h: Introduce PrintMode Xml
	* source/cmt_parser.cxx: In class Cmt, in functions do_setup, print,
	print_context, implement case for mode Xml, in functions do_show_projects,
	do_show_uses, pass mode to Project::show_all, Use::show_all, implement
	function print_xml_prolog
	* source/cmt_symbol.cxx: In class Symbol, in functions all_print, print,
	implement case for mode Xml
	* source/cmt_project.h: In class Project, in functions show_all, show, add
	optional argument of type PrintMode
	* source/cmt_project.cxx: Implement added optional argument for mode Xml,
	in particular
	* source/cmt_use.h: In class Use, in functions show_all, add optional
	argument of type PrintMode
	* source/cmt_use.cxx: Implement added optional argument for mode Xml,
	in particular, in function get_cmtpath_and_offset, set offset to real_path
	for packages not belonging to any project
	* mgr/CMT.dtd: Introduce document type definition for XML format output
	* src/setup.sh: In PATH, CLASSPATH, only strip entries matching /CMT/,
	rather than CMT (similar to src/setup.csh)
	
2010-08-12    <rybkin@lal.in2p3.fr> 434

	* source/cmt_commands.h: Introduce option -requirements for command
	"cmt setup" to generate standalone requirements file from which generate
	setup script. In class ArgParser, introduce function option_requirements
	* source/cmt_commands.cxx: Implement function option_requirements
	* source/cmt_parser.h: Introduce PrintMode Requirements
	* source/cmt_parser.cxx: In class Cmt functions print and print_context,
	add case for mode Requirements, former also prints all active tags, latter
	prints PACKAGEROOT and PACKAGECONFIG as sets. In class Cmt function
	do_show_macro, do not set error wrong_symbol_type for macros or sets with
	name of	form NAMEROOT. In class StandardMacroBuilder function
	fill_for_branches, for standalone package case, do not override basic
	macros (srcdir, src, inc, doc, bin, BIN, javabin, mgr) if they are defined
	in requirements, similar to standard cmt package case
	* source/cmt_tag.h: In class Tag functions show_definition, show, add
	optional argument prefix
	* source/cmt_tag.cxx: Implement added optional argument
	* source/cmt_symbol.h: In class SymbolValueList, introduce function print,
	in class ValueBuilder, introduce function print, in class Symbol, introduce
	function print_macro, and member printed
	* source/cmt_symbol.cxx: Implement introduced functions, in class Symbol
	function all_print, add case for mode Requirements which also deals with
	macros and invokes print_macro
	
2010-08-04    <rybkin@lal.in2p3.fr> 433

	* mgr/fragments/dependencies: In QUICK mode, only generate dependencies
	file if	it does not exist
	* mgr/fragments/nmake/dependencies: idem
	* mgr/fragments/constituent: In QUICK mode, run "cmt build
	constituent_config" command, if any of constituent Makefile, tag specific
	Makefile, setup definitions file does not exist
	* mgr/fragments/constituent_lock: idem
	
2010-08-03    <rybkin@lal.in2p3.fr> 432

	* source/cmt_parser.h: Add to ActionType action_build_constituents_config,
	action_build_constituent_config
	* source/cmt_commands.cxx: Introduce commands "cmt build
	constituents_config", and "cmt build constituent_config" and their help
	messages
	* source/cmt_tag.h: In class Tag functions show_definition, show, add
	optional argument of type ostream
	* source/cmt_tag.cxx: Implement optional argument
	* source/cmt_std.h: Add header file and shortcut for ostringstream
	* source/cmt_symbol.h: In class Symbol function show_macro, add	optional
	argument of type ostream
	* source/cmt_symbol.cxx: Implement optional argument, add actions
	action_build_constituents_config, action_build_constituent_config in same
	context as action_build_tag_makefile
	* source/cmt.h: In class Cmt, introduce functions
	do_build_constituents_config, do_build_constituent_config, for functions
	do_show_setup, do_show_path, do_show_tags, do_show_uses, print_macros add
	optional argument of type ostream
	* source/cmt_parser.cxx: Implement Cmt class functions and optional
	argument, add actions
	action_build_constituents_config, action_build_constituent_config in same
	context as action_build_constituents_makefile and
	action_build_constituent_makefile, make use of functions
	do_build_constituents_config and do_build_constituent_config, and in same
	context as action_build_tag_makefile
	* source/cmt_project.h: In class Project function show_paths, add optional
	argument of type ostream
	* source/cmt_project.cxx: Implement optional argument
	* source/cmt_use.h: In class Use functions show_all, show_sub_uses, add
	optional argument of type ostream
	* source/cmt_use.cxx: Implement optional argument
	* source/cmt_generators.cxx: In class ConstituentsMakefileGenerator
	function build, parse option -outdir=
	* src/Makefile.header: Make use of "cmt build constituents_config" command,
	use .DEFAULT for (almost) all possible targets (rather than common_target)
	* src/NMakefile.header: Make use of "cmt build constituents_config" command
	* mgr/fragments/nmake/constituents_header: No longer use commands
	"cmt build tag_makefile" or "cmt show setup"
	* mgr/fragments/constituent: Make use of "cmt build constituent_config"
	command, ensure QUICK mode can be used for from scratch build
	* mgr/fragments/constituent_lock: idem
	* mgr/fragments/nmake/constituent: idem
	* mgr/fragments/nmake/constituent_lock: idem
	* mgr/fragments/dependencies: Do not use QUICK switch (dependencies should
	be rebuilt as needed by Make)
	* mgr/fragments/nmake/dependencies: idem
	
2010-07-02    <rybkin@lal.in2p3.fr> 431

	* source/cmt_tag.h: In class Tag, introduce member m_ref_uses to hold uses
	which by means of tag statement associate tag(s) with this tag and member
	function add_ref_use
	* source/cmt_tag.cxx: Implement function add_ref_use and make its use in
	function show_definition to show list of packages which imply tags for
	particular tag (previously, all tags were attributed to last package from
	list)
	
2010-07-02    <rybkin@lal.in2p3.fr> 430

	* source/cmt_system.cxx: In function get_uname, use "uname" system call
	rather than "popen". This call conforms to POSIX.1-2001, does NOT exist
	in 4.3BSD
	* source/cmt_symbol.cxx: In function select_first, when several alternative
	values are specified through several tag-value pairs, select the first
	matching condition (rather than based on conditions priorities)
	* mgr/fragments/library_no_static: Generate <library>.stamp in addition to
	<library>.shstamp
	* mgr/fragments/nmake/library_no_static: idem
	
2010-04-05    <rybkin@lal.in2p3.fr> 429

	* source/cmt_awk.cxx: For Windows, define PATH_MAX via _MAX_PATH
	* source/cmt_system.cxx: idem. In function close_ostream, define prev_fail
	and fclose_fail as int (rather than bool)
	* source/cmt_pattern.cxx: In function ApplyPattern::action, print warning
	pattern_not_found in DeveloperMode (i. e., in current package) and on the
	condition requirements files are parsed recursively only (to avoid false
	warnings)
	* mgr/cmt_dependencies.nmake: Update
	* mgr/VisualC.nmake: idem
	
2010-04-02    <rybkin@lal.in2p3.fr> 428

	* mgr/requirements: Introduce cmt_parallel_bins tag to enable locking
	mechanism which allows for simultaneous/parallel builds for multiple binary
	tags (not activated by default)
	* source/cmt_commands.cxx: Introduce optional arguments [<path>]... for
	"cmt show container" command
	* source/cmt_parser.cxx: Implement introduced additional functionality of
	"cmt show container" command
	* source/cmt_project.h: idem
	* source/cmt_project.cxx: idem
	
2010-03-31    <rybkin@lal.in2p3.fr> 427

	* source/cmt_vcs.cxx: In method GlobalProjectAction::run, add container
	with relative path (rather than absolute) which can be used for container
	checkout. Same in method Packages::find, when adding package in case of
	found package validation failure. In method Walkthru::filter, print warning
	and return in case of macro reference(s) encountered when reading
	requirements
	* source/cmt_project.cxx: In function Project::order_all, fix setting of
	current project pointer
	
2010-03-30    <rybkin@lal.in2p3.fr> 426

	* source/cmt_vcs.cxx: Allow for -r option version tag to be HEAD which
	also applies to packages specified in option -requirements file. Use
	dependencies are only resolved when -C option is specified and -r HEAD
	option is not specified. In function Vcs::resolve_uses, make use of class
	Packages functions exclude_current_project, restore_current_project
	
2010-03-30    <rybkin@lal.in2p3.fr> 425

	* source/cmt_system.cxx: In function CmtSystem::pwd, use strncpy instead of
	strcpy
	* source/cmt_use.cxx: In function move_to, minor simplification
	
2010-03-29    <rybkin@lal.in2p3.fr> 424

	* source/cmt_commands.cxx: In functions option_path, option_use of class
	ArgParser, validate current use object reset from command line options,
	reorder and/or create projects, if needed
	* source/cmt_project.cxx: In function ProjectFactory::create_project, do
	not specify current project (and its tag). In function Project::order_all,
	specify current project (and its tag) based on current directory path or
	current use object real path, if the latter is located
	* source/cmt_parser.cxx: In function Cmt::guess_current_project, make use
	of current use object real path, if it is located, or current directory
	path otherwise. This allows for doing setup with setup scripts generated
	by "cmt config" from any place (with a correct CMTPROJECTPATH), resolving
	ticket #57
	* source/cmt_use.cxx: In function move_to, search for package in absolute
	path first, if it is specified
	* source/cmt_pattern.cxx: In function ApplyPattern::action, print warning
	pattern_not_found in DeveloperMode (i. e., in current package) only
	
2010-03-26    <rybkin@lal.in2p3.fr> 423

	* source/cmt_use.h: In function move_to, introduce second parameter curdir
	with default value false to specify where to search for package: in current
	directory or in CMTPATH entries
	* source/cmt_use.cxx: Modify function move_to accordingly
	* source/cmt_project.cxx: In function container_action, make use of move_to
	to search for container in current directory only
	* source/cmt_parser.cxx: In function reach_current_package, search for
	package in current directory and in CMTPATH entries as it was
	
2010-03-26    <rybkin@lal.in2p3.fr> 422

	* source/cmt_system.cxx: In function CMTPathManager::do_add_cmt_path,
	ensure that projects created from CMTPATH environment variable entries do
	not become each others children-parents automatically (that will be
	based on use statements in project.cmt files). Ensure that command exit
	status is returned by CmtSystem::execute (const cmt_string&, cmt_string&)
	* source/cmt_database.h: Introduce member m_ordered_projects to keep vector
	of pointers to the ordered projects and function ordered_projects to return
	that
	* source/cmt_database.cxx: Implement function ordered_projects
	* source/cmt_project.h: Introduce functions order_all, set_is_current,
	is_current, erase_child, and member m_is_current
	* source/cmt_project.cxx: Implement introduced functions. In function
	ProjectFactory::create_project, call Project::order_all () if projects
	dependencies are updated or new project is created, call
	Cmt::get_current_dir_real to determine (and set the project member
	accordingly) whether project is current or not, do NOT make project that
	has no parent the top project. In function get_current, make use of
	is_current rather than pwd. Function Project::ordered_projects now only
	returns ordered projects pointers vector, projects ordering is done in
	Project::order_all. Ordering starts with current project, if exists, and
	projects without parents, if current project does not exist or has no
	parents and no children (the case for projects created from CMTPATH
	environment variable entries), and aims to put parents before children
	in projects order. If current project exists, only ordered projects are
	present in ordered projects vector. For projects without parents and
	without children, strategies are updated from the project next after
	them in the ordered projects vector. In function Project::show_all, always
	show all projects (rather than children of current or first project only),
	first show ordered projects, then show the rest. In function Project::visit,
	do not reorder current project if exists. Implement functions is_current,
	set_is_current, erase_child. In function container_action, start search
	from project m_cmtpath_pwd, if container is found, ensure its real_path is
	absolute path
	* source/cmt_use.h: Add helper function get_info to return use info as
	string
	* source/cmt_use.cxx: In function show_all, for home_package and
	user_context_package use version assigned when they are created rather
	than hard-wire version here, set error package_not_found if there are uses
	that are not located. In function reach_package, consider case of empty
	version. Implement get_info and make use of it in function Use::add
	* source/cmt_pattern.cxx: In function ApplyPattern::action, always print
	warning pattern_not_found, if appropriate, but do not set error (for now)
	* source/cmt_syntax.cxx: In functions do_parse_requirements, do_parse_words,
	clear syntax_error only, and print error messages in case of syntax_error
	only
	* source/cmt_log.h: Add CmtMessage::verbose function
	* source/cmt.h: Introduce functions get_current_dir_real, get_current_path,
	set_recursive
	* source/cmt_parser.cxx: Implement introduced functions, in function
	use_special_requirements, set use m_located member value to true, if
	requirements file exists
	* source/cmt_vcs.h: In class Vcs, introduce functions checkout_context,
	parse_arguments, resolve_uses, introduce class IUseVisitor
	* source/cmt_vcs.cxx: Introduce and implement class GlobalProjectAction,
	class Packages, in order to generate uses available via current context
	and search for specific packages among them. Rewrite class Walkthru to
	accept an implementation of IUseVisitor interface, replace parse_checkout
	with parse_arguments with new options -C, -i, and implement new
	parse_checkout, in particular, in order to implement new options -C, -i.
	Introduce helper classes VisitorForInfo, VisitorForCheckout implementing
	IUseVisitor interface, enhance Vcs::checkout_module to allow for HEAD,
	head, TRUNK, trunk to be used as arguments of option -r. Implement
	functions visit, Vcs::checkout_context, Vcs::resolve_uses in order to
	implement option -C, enhance Vcs::checkout_from_requirements in order to
	implement option -i
	* src/Makefile.header: Improve a diagnostic message
	* src/Makefile.core: Do not ignore errors in command lines beginning with
	macro echo
	* mgr/cmt_dependencies.make: Update
	
2010-02-25    <rybkin@lal.in2p3.fr> 421

	* source/cmt_vcs.h: In class Vcs, introduce functions checkout_module,
	checkout_from_requirements. In class Vcs::Checkout, introduce members
	m_requirements, m_command, m_recursive, m_context
	* source/cmt_vcs.cxx: Implement introduced functions so that options
	-R (recursive checkout) and -requirements (checkout from requirements file)
	be functional with Subversion
	
2010-02-03    <rybkin@lal.in2p3.fr> 420

	* source/cmt_system.cxx: In functions getwd, pwd, realpath_, execute use
	system dependent size PATH_MAX for pathname arrays (instead of 256)
	* source/cmt_awk.cxx: In function PAwk::run, idem
	
2010-01-13    <rybkin@lal.in2p3.fr> 419

	* source/cmt_parser.cxx: In function fill_for_all_constituents of class
	StandardMacroBuilder, print a warning message if a package requested for
	import for a constituent cannot be imported
	
2010-01-08    <rybkin@lal.in2p3.fr> 418

	* source/cmt_use.cxx: In function compare_versions, introduce optional
	argument "match" and implement mode in which versions are compared
	literally (with * matching any string), in function Use::reach_package,
	make use of compare_versions in "match" mode when structuring style is
	"without_version_directory", make use of 2 use class members - style and
	structuring_style, do not consider version == "" where it is not possible,
	in functions Use::get_full_path, Use::fill_standard_macros, install_library,
	Use::build_library_links, Use::show_sub_uses do not use "no_version_style"
	as value of style member, use also structuring_style instead, allow for
	standalone package case, introduce helper class PackageReader to deduce
	package name from requirements file and implement Package::get_name function
	making use of the class
	* source/cmt_use.h: Introduce Use class member structuring_style, function
	Package::get_name
	* source/cmt_parser.h: Exclude "no_version_style" value from CmtDirStyle
	enum
	* source/cmt_parser.cxx: In function Cmt::configure_current_package, use
	directory structure and package statement in requirements to determine
	structuring style, in function Cmt::do_create, do not use "no_version_style"
	as value of CmtContext m_current_style, in function Cmt::do_run, for
	"cmt run" command, check exit status and set execution_failed error, when
	appropriate, in	function dos_script_prefix, do not use "no_version_style"
	value no_version_style, in function Cmt::load do not use "no_version_style"
	as value of CmtContext m_current_style, in StandardMacroBuilder
	fill_for_use_requirements function, allow for standalone package case
	* source/cmt_symbol.cxx: In function Symbol::action, allow for standalone
	package case, do not use "no_version_style" as value of Use style member
	
2009-11-28    <rybkin@lal.in2p3.fr> 417

	* source/cmt_error.h: Introduce error wrong_symbol_type
	* source/cmt_error.cxx: idem, improve error messages
	* source/cmt_parser.cxx: In functions Cmt::do_show_action,
	Cmt::do_show_macro, replace warnings with the introduced error
	* source/cmt_symbol.cxx: In function Symbol::action, resolve relative
	script path without using PACKAGEROOT environment variable in case of
	standalone package (as the variable is not set for it)
	
2009-11-27    <rybkin@lal.in2p3.fr> 416

	* source/cmt_symbol.cxx: In function Symbol::action, resolve relative
	script path without using PACKAGEROOT environment variable in case
	SetupRoot strategy is not enabled (no_root), in function Symbol::print, set
	cmtsetupstatus shell variable to 1 in case script specified via
	setup_script statement exits with non-zero status, similarly, in function
	Symbol::print_clean, set cmtcleanupstatus shell variable to 1 in case
	script specified via cleanup_script statement exits with non-zero status 
	* source/cmt_parser.cxx: Make use of cmtsetupstatus, cmtcleanupstatus shell
	variables in setup.[c]sh, cleanup.[c]sh scripts in order to exit with a
	non-zero status on failure, which takes into account failures of user
	provided setup, cleanup scripts
	
2009-11-25    <rybkin@lal.in2p3.fr> 415

	* source/cmt_awk.cxx: In function PathScanner::scan_path, skip .svn
	directories, invoke a.run with 4th argument "true" when the structure is
	without version directory
	* source/cmt_system.cxx: Correct a comment typo
	* source/cmt_use.cxx: In function Use::get_all_clients, do not issue the
	warning
	* source/cmt_fragment.cxx: In function Fragment::show, set error if the
	fragment is not found
	* source/cmt_error.h: Introduce errors constituent_not_found,
	fragment_not_found, language_not_found
	* source/cmt_error.cxx: idem
	* source/cmt_commands.cxx: In function ArgParser::do_show, pass all
	arguments to "cmt show packages", correct "cmt show clients" help message,
	add "cmt show container" help message, update "cmt show packages" help
	message
	* source/cmt_project.cxx: In function Project::scan_paths_for_package, set
	error if the package is not found
	* source/cmt_language.cxx: In function Language::show, set error if the
	language is not found
	* source/cmt_parser.cxx: In function Cmt::do_config, invoke
	Generator::build_default_makefile after parsing the requirements file in
	order to keep track of possible errors (which may be cleared otherwise), in
	function Cmt::do_show_constituent, set error if the constituent is not found,
	in function Cmt::do_show_packages, search and show packages in all paths
	supplied (if any), in function Cmt::do_show_use_paths, set error if the
	package	is not found
	* mgr/cmt_dependencies.make: Update
	
2009-11-20    <rybkin@lal.in2p3.fr> 414

	* source/cmt_system.h: In class CmtSystem, introduce functions
	close_ostream, close_stdout in order check whether there are file write
	errors,	and exit with an error if that is the case
	* source/cmt_system.cxx: Implement introduced functions, in function
	CmtSystem::compare_and_update_files, check file stream status
	* source/cmt_generators.cxx: Set file_access_error error if file cannot be
	opened for writing, close file streams on writing making use of
	close_ostream
	* source/cmt_generator.cxx: idem
	* source/cmt_parser.cxx: idem, in setup.[c]sh, cleanup.[c]sh scripts, check
	CMT command exit status, on failure, print the command and exit,
	for "cmt filter" command, set path_not_found error, when appropriate
	* source/cmt.cxx: Close stdout with CmtSystem::close_stdout before exiting
	the program
	* source/cmt_string.cxx: In function cmt_string::write, check file stream
	status
	* src/Makefile.header: Improve a diagnostic message by using the standard
	macros
	* mgr/cmt_dependencies.make: Update
	
2009-11-13    <rybkin@lal.in2p3.fr> 413

	* source/cmt_project.h: In class Project, restore function get_container
	returning (reference to) container object
	* source/cmt_project.cxx: Implement the modified function
	* source/cmt_syntax.cxx: In function SyntaxParser::parse_requirements,
	apply tag container_package if the current package is the container package
	of the project
	
2009-11-06    <rybkin@lal.in2p3.fr> 412

	* source/cmt_project.h: In class Project, introduce (static) function
	show_container, functions get_container_name, get_container_path,
	set_container_name, set_container_path, and drop functions get_container,
	set_container, add and drop class members accordingly, change
	container_action function signature to allow for the generic CMT container
	statement syntax
	* source/cmt_project.cxx: Implement the introduced and modified functions
	* source/cmt_syntax.cxx: In class KwdContainer, modify function action to
	reflect the changes above
	* source/cmt_commands.cxx: Introduce and implement "cmt show container"
	command making use of the functions introduced above
	* source/cmt_parser.h: idem
	* source/cmt_parser.cxx: idem
	* source/cmt.h: idem
	* src/setup.tcsh: Add completion for "cmt show container" command in TCSH
	* src/setup.zsh: Add completion for "cmt show container" command in Z shell
	
2009-10-15    <rybkin@lal.in2p3.fr> 411

	* mgr/requirements: Revert for now the modifications of C.L. 407 (they are
	not backwards compatible, and at least the users should be prepared first)
	
2009-10-15    <rybkin@lal.in2p3.fr> 410

	* source/cmt_syntax.cxx: In class KwdSetupStrategy, add new strategy
	SetupScripts with values scripts and no_scripts
	* source/cmt_project.cxx: In StrategyMgr default constructor, add the setup
	strategy values (default: scripts), in function Strategy::update, check if
	m_off_tag is 0 and, if so, initialise it
	* source/cmt_parser.cxx: In Cmt::do_show_strategies, show the value of the
	SetupScripts strategy, in functions Cmt::install_[test_]cleanup_scripts,
	Cmt::install_[test_]setup_scripts, do not generate (or remove existing)
	cleanup and setup scripts if SetupScripts strategy is no_scripts (i. e.,
	setup_strategy includes no_scripts)
	
2009-09-18    <rybkin@lal.in2p3.fr> 409

	* mgr/requirements: For Windows, set macro devenv_command to "devenv /?"
	if VS (for Visual Studio) tag is activated
	* mgr/VisualC.nmake: Update
	
2009-09-17    <rybkin@lal.in2p3.fr> 408

	* source/cmt.h: Declare function Cmt::configure_devenv_tag
	* source/cmt_parser.cxx: Implement Cmt::configure_devenv_tag making
	use of command specified by macro "devenv_command" to retrieve version
	of Microsoft (R) Visual Studio and define a corresponding tag
	* mgr/requirements: For Windows, set macro devenv_command to "devenv /?"
	(can be overridden via CMTHOME requirements file)
	* mgr/VisualC.nmake: Update
	
2009-09-10    <rybkin@lal.in2p3.fr> 407

	* mgr/requirements: For Linux, only keep the OS major version number when
	creating the tag. For the gcc compliler, only keep the major and minor
	version numbers when creating the tag.
	* mgr/cmt_mac_version.sh: Optimise the retrieval of the	Mac OS version
	
2009-09-09    <rybkin@lal.in2p3.fr> 406

	* source/cmt_project.cxx: In function Project::ordered_projects, use static
	for reference to Project::projects. In function Project::show_all, ensure
	Project::ordered_projects is always invoked. In function Project::show,
	output "v0" as version for CMTUSERCONTEXT, CMTHOME to be consistent with
	"cmt show uses"
	
2009-08-10    <rybkin@lal.in2p3.fr> 405

	* source/cmt_parser.cxx: In functions Cmt::do_remove_library_links,
	Cmt::do_broadcast, set CmtError::execution_error when CmtSystem::execute
	returns a non-zero (including 2) value
	
2009-07-15    <rybkin@lal.in2p3.fr> 404

	* source/cmt_system.cxx: In function CMTPathManager::do_add_cmt_path, ensure
	that CMTUSERCONTEXT or CMTHOME is not set as parent project for other
	projects. In function CmtSystem::get_cmt_paths, create CMTUSERCONTEXT and/or
	CMTHOME projects before projects from CMTPATH so that their source does not
	change after sourcing a setup script
	* source/cmt_project.h: In function Project::visit, add offset parameter
	* source/cmt_project.cxx: In function ProjectFactory::create_project, do not
	make CMTUSERCONTEXT or CMTHOME project top project because it has no parent,
	or add it as child to the top project. In function
	Project::ordered_projects, make CMTUSERCONTEXT first and CMTHOME last
	project, if existent, with the child - the next, and the parent - last but
	one project in order respectively. In functions Project::fill_selection,
	Project::show_all make use of Project::ordered_projects. In function,
	Project::visit, make use offset parameter, when reordering projects, put the
	child project right after the parent project. In function Project::show,
	ensure the project is shown once
	* source/cmt_use.cxx: In function Use::get_strategy, fix the search of the
	project for a use (in case the use has an offset), make use of function
	Project::ordered_projects instead of Project::projects function
	
2009-07-01    <rybkin@lal.in2p3.fr> 403
	
	* mgr/cmt_svn_checkout.py: Introduce a version working on Windows. Do not
	use module commands, instead, in class Utils, introduce portable (static)
	methods	getstatusoutput, getstatuserror, and make use of them
	
2009-06-27    <rybkin@lal.in2p3.fr> 402
	
	* mgr/cmt_svn_checkout.py: Introduce the version using the Subversion CLI
	(rather than Subversion	Python bindings). 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
	<package>, <PACKAGE>, <revision>, where <revision> is replaced with
	last_changed_rev of the trunk. Use "cmt -q config" and always return 0 from
	function generate of CmtContext	to avoid error messages even when the
	function actually succeeds. Treat URL, OFFSET, PATH as (Subversion scheme)
	URLs, introduce function urljoin (using "the last wins algorithm") to
	construct the checkout URL from them
	* mgr/requirements: For Linux, set macro svn_checkout_command to use the
	Python in the PATH to execute mgr/cmt_svn_checkout.py
	
2009-06-18    <rybkin@lal.in2p3.fr> 401
	
	* mgr/cmt_svn_checkout.py: Introduce function trunk_tag to determine
	the tag of the module's trunk
	
2009-05-23    <rybkin@lal.in2p3.fr> 400
	
	* src/NMakefile.core: Fix a typo
	* mgr/fragments/cmt_action_runner_header: Remove ${CONSTITUENT}_dependencies
	as it is dealt with in constituents.make, cannot be dealt here anyway (but
	may only generate a warning)
	
2009-05-20    <rybkin@lal.in2p3.fr> 399
	
	* source/cmt_parser.cxx: In function set_standard_macros, if the Verbose
	level is activated, check whether the names of different packages in upper
	case coincide and issue a warning appropriately
	* source/cmt_pattern.cxx: In function ApplyPattern::action, add the package
	name (and offset) to the warning message about an undefined pattern
	
2009-05-19    <rybkin@lal.in2p3.fr> 398
	
	* source/cmt_parser.cxx: In function fill_for_use_requirements, build the
	macro making use of macros <package>_root rather than <PACKAGE>ROOT to
	avoid ambiguity if the names of different packages in upper case coincide
	
2009-05-18    <rybkin@lal.in2p3.fr> 397
	
	* mgr/fragments/library: Pass all objects as arguments to macro ar to allow
	the macro to be "libtool -o" for Darwin. Rebuild static library completely
	whenever an object changes to be consistent on all systems
	* mgr/requirements: For Darwin, build statically linked (archive) libraries
	with "libtool", the recommended way. For Linux, use the system Python in
	svn_checkout_command to ensure the Subversion Python bindings installed
	on the system are used
	
2009-05-15    <rybkin@lal.in2p3.fr> 396
	
	* source/cmt_project.cxx: In function Project::add, print a diagnostic
	message only if the Verbose level is activated
	* mgr/cmt_lsb_system_version.sh: Make the script more generic
	* mgr/cmt_svn_checkout.py: Update the version
	
2009-05-05    <rybkin@lal.in2p3.fr> 395
	
	* mgr/cmt_svn_checkout.py: Improve error messages (string representation
	of SubversionException is simply a tuple)
	
2009-05-04    <rybkin@lal.in2p3.fr> 394
	
	* mgr/cmt_linux_version.sh: Take into account Fedora distribution, make
	the output of the form DISTRIBUTION-VERSION where VERSION has the `.'s
	unchanged so that is possible to filter the major and minor versions later
	
2009-04-29    <rybkin@lal.in2p3.fr> 393
	
	* mgr/cmt_svn_checkout.py: To allow for checkout of branch tags
	
2009-04-29    <rybkin@lal.in2p3.fr> 392
	
	* source/cmt_system.cxx: In function CmtSystem::execute, return -1 on
	failure and return status of the command otherwise
	* source/cmt_vcs.cxx: Ensure "cmt checkout" command exit status is set to
	a nonzero value on error. In particular, in function execute_and_retry, on
	failure, exit with the exit status of the last failed command, in function
	check_protocol, on failure, exit with 1, also make use of CmtError::set
	when appropriate
	* mgr/cmt_svn_checkout.py: Catch ImportError exception in case Subversion
	Python bindings cannot be imported
	
2009-04-27    <rybkin@lal.in2p3.fr> 391
	
	* source/cmt_error.h: Add an error configuration_error
	* source/cmt_error.cxx: idem
	* source/cmt_commands.cxx: Set CmtError::syntax_error for "cmt checkout"
	command when appropriate to ensure the exit status is set to a nonzero
	value on error. Add the mention of SVN to help message
	* source/cmt_vcs.h: Declare generic CVS-like checkout class Vcs (for
	Version	Control	System) and Subversion checkout class Svn
	* source/cmt_vcs.cxx: Implement Vcs, Svn classes. The choice between CVS
	and Subversion is made based on which environment variable - CVSROOT or
	SVNROOT - is set. Svn uses the command specified via macro
	svn_checkout_command for checkout from Subversion repository. CVS checkout
	is still done via Cvs::checkout
	* source/cmt_parser.cxx: Add the possibility to do checkout from Subversion
	repository by making use of class Vcs to implement "cmt checkout" command.
	After help message is printed, return a nonzero value from Cmt::parser on
	error
	* mgr/requirements: For Linux, Darwin, and Windows, set macro
	svn_checkout_command to	mgr/cmt_svn_checkout.py. Replace cmt_cvs.cxx with
	cmt_vcs.cxx
	
2009-04-20    <rybkin@lal.in2p3.fr> 390
	
	* mgr/cmt_svn_checkout.py: Add script to checkout CMT package(s) from
	Subversion repository
	
2009-04-07    <rybkin@lal.in2p3.fr> 389
	
	* source/cmt_pattern.cxx: Print a warning message when an undefined pattern
	is referenced with the Verbose level activated
	
2009-03-28    <rybkin@lal.in2p3.fr> 388
	
	* mgr/fragments/cleanup_header: For the DEFAULT target, add a check
	in case the file recording the package setup is referred to by the
	older name
	
2009-03-15    <rybkin@lal.in2p3.fr> 387
	
	* mgr/fragments/constituent: Restore the dependency of
	$(cmt_local_${CONSTITUENT}_makefile) on $(${CONSTITUENT}_dependencies).
	For the constituent makefile to be generated properly, the constituent
	source files have to exist. The latter may be generated as a result of
	building other constituent(s). Discard the ${CONSTITUENT}clean dependency
	on $(cmt_local_${CONSTITUENT}_makefile). Make ${CONSTITUENT}uninstall
	also depend on $(${CONSTITUENT}uninstall_dependencies) and compute the
	latter to insure that uninstallation be done in reverse build order
	* mgr/fragments/constituent_lock: idem
	* mgr/fragments/nmake/constituent:  Restore the dependency of
	$(cmt_local_${CONSTITUENT}_makefile) on $(${CONSTITUENT}_dependencies) as
	detailed above. Discard the ${CONSTITUENT}clean dependency
	on $(cmt_local_${CONSTITUENT}_makefile). Make ${CONSTITUENT}uninstall
	independent of $(cmt_local_${CONSTITUENT}_makefile) but rather generate the
	latter in the rule command, if non-existent
	* mgr/fragments/nmake/constituent_lock:	idem
	* mgr/fragments/check_application_header: Discard the ${CONSTITUENT}check
	dependency on $(cmt_local_${CONSTITUENT}_makefile) but rather generate the
	latter in the rule command, if non-existent
	* mgr/fragments/nmake/check_application_header: idem
	* mgr/cmt_lockfile.sh: Use POSIX conformant syntax for the test utility
	* mgr/fragments/nmake/library: Improve control of NMake verbosity
	* mgr/fragments/nmake/library_no_share: idem
	* mgr/fragments/nmake/library_no_static: idem
	
2009-02-11    <rybkin@lal.in2p3.fr> 386
	
	* mgr/fragments/cleanup_header: Use POSIX conformant syntax for the expr
	utility
	
2009-02-05    <rybkin@lal.in2p3.fr> 385
	
	* mgr/cmt_mac_version.sh: Add script to optimise the retrieval of the
	Mac OS version
	* mgr/requirements: Make use of the added script
	
2009-02-02    <rybkin@lal.in2p3.fr> 384
	
	* mgr/requirements: Under Windows, add a trailing space to the make action
	definition so that the trailing backslash (\) in $(bin) is not followed by
	a newline character when the action is executed via NMake (NMake interprets
	a backslash followed by a newline character as a space in the command)
	
2009-01-30    <rybkin@lal.in2p3.fr> 383
	
	* source/cmt_generator.h: In class CmtGenerator, introduce member
	m_HASDEPENDENCIES
	* source/cmt_generator.cxx: idem
	* source/cmt_generators.cxx: Depending on whether the constituent needs
	the generation of dependencies, set m_HASDEPENDENCIES appropriately and
	fill the makefiles fragments with the value
	* mgr/fragments/nmake/constituent: Implement the generation of
	dependencies depending on the files modifications rather than every time
	NMake is run
	* mgr/fragments/nmake/constituent_lock: idem
	* mgr/fragments/nmake/dependencies: idem
	* mgr/fragments/nmake/cpp: idem
	* mgr/fragments/nmake/cpp_library: idem
	* mgr/fragments/nmake/c: idem
	* mgr/fragments/nmake/c_library: idem
	* mgr/fragments/nmake/fortran: idem
	* mgr/fragments/nmake/fortran_library: idem
	* mgr/fragments/nmake/yacc: idem
	* mgr/fragments/nmake/yacc_library: idem
	* mgr/fragments/nmake/lex: idem
	* mgr/fragments/nmake/lex_library: idem
	* mgr/fragments/nmake/make_header: idem
	* mgr/fragments/nmake/constituents_trailer: Fix a typo
	* mgr/fragments/nmake/cmt_action_runner: Introduce NMake version of the
	file
	* mgr/requirements: Under Windows, build the stamps files for dependencies
	by default (as under Linux, Darwin)
	* mgr/cmt_format_deps.bat: Use the type command to create the stamps files
	* mgr/fragments/constituents_header: Introduce the makefiles target to only
	build all the makefiles
	* mgr/fragments/constituent: idem
	* mgr/fragments/constituent_lock: idem
	
2009-01-08    <rybkin@lal.in2p3.fr> 382
	
	* source/cmt_parser.cxx: In function Cmt::do_show_groups, ensure that the
	constituents are parsed so that command "cmt show groups" is functional
	* src/Makefile.header: Make the READONLY mode obsolete (the relocation
	of the binary build directory provides this functionality as well).
	Change the name of the file recording the setup to $(bin)setup.make and
	generate it here. Do not specify the first, config targets. Add the
	uninstall targets to the help message
	* mgr/fragments/constituents_header: Make the READONLY mode obsolete.
	Change the name of the file recording the setup to $(bin)setup.make and
	do not generate it here. Remove the first, config, checkuses targets
	* mgr/fragments/constituent: Make the READONLY mode obsolete.
	Change the names of the files recording the setup to $(bin)setup.make and
	$(bin)setup_${CONSTITUENT}.make, do not override the latter when identical
	(see C.L. 233). Make $(cmt_local_${CONSTITUENT}_makefile) only depend on
	$(cmt_local_tagfile_${CONSTITUENT}). Make ${CONSTITUENT}clean also depend
	on $(cmt_local_${CONSTITUENT}_makefile)
	* mgr/fragments/constituent_lock: idem
	* mgr/fragments/make_header: Make the READONLY mode obsolete. 
	Change the names of the files recording the setup to $(bin)setup.make and
	$(bin)setup_${CONSTITUENT}.make. Add a rule with an empty command for
	$(use_requirements) for optimisation.
	* mgr/fragments/cmt_action_runner_header: Improve control of Make verbosity
	* mgr/fragments/protos_header: idem
	* mgr/fragments/buildproto: idem
	* mgr/fragments/cleanup_objects: Clean up per object file dependencies
	files and stamps
	* mgr/fragments/library: idem
	* mgr/fragments/library_no_share: idem
	* mgr/fragments/library_no_static: idem
	* mgr/fragments/dependencies: Do not include dependencies fragment in the
	constituent makefile when "make uninstall" is run
	* mgr/fragments/c: idem
	* mgr/fragments/c_library: idem
	* mgr/fragments/cpp: idem
	* mgr/fragments/cpp_library: idem
	* mgr/fragments/cleanup_library: Fix for the clean command
	* mgr/fragments/check_application_header: Improve control of Make verbosity,
	make ${CONSTITUENT}check depend on $(cmt_local_${CONSTITUENT}_makefile)
	* mgr/fragments/check_application: Specify the application path when
	running it (so that the command does not fail if . is not in the PATH)
	* mgr/fragments/constituents_trailer: Minor change to diagnostic messages
	* mgr/fragments/cleanup_application: idem
	* mgr/fragments/cleanup_header: Replace cd . with an empty command
	* mgr/cmt_uninstall_action.sh: Ensure that dangling symbolic links can be
	uninstalled
	* src/NMakefile.header: Improve the help message, make it the same as for UNix-like
	systems. In the QUICK mode, generate $(cmt_constituents_makefile) if non-existent
	* mgr/fragments/nmake/constituents_header: Do not override the $(bin)setup.nmake
	when identical (see C.L. 233). In the QUICK mode, generate $(cmt_local_tagfile)
	if non-existent. Add diagnostic messages
	* mgr/fragments/nmake/constituent: Change the names of the files recording
	the setup to $(bin)setup.nmake and $(bin)setup_${CONSTITUENT}.nmake, do not
	override the latter when identical (see C.L. 233).
	Make $(cmt_local_${CONSTITUENT}_makefile) only depend on
	$(cmt_local_tagfile_${CONSTITUENT}). Make ${CONSTITUENT}clean also depend
	on $(cmt_local_${CONSTITUENT}_makefile).
	In the QUICK mode, generate $(cmt_local_tagfile_${CONSTITUENT}) if non-existent
	* mgr/fragments/nmake/constituent_lock:	idem
	* mgr/fragments/nmake/cmt_action_runner_header: Improve control of Make verbosity
	* mgr/fragments/nmake/protos_header: idem
	* mgr/fragments/nmake/buildproto: Introduce NMake version of the file
	* mgr/fragments/nmake/cpp: Fix a typo
	* mgr/fragments/nmake/cpp_library: idem
	* mgr/fragments/nmake/c: idem
	* mgr/fragments/nmake/c_library: idem
	* mgr/fragments/nmake/application: Remove the connection between clean and
	uninstall targets - same as the for Unix-like systems (see C.L. 246)
	* mgr/fragments/nmake/library: idem
	* mgr/fragments/nmake/library_no_share: idem
	* mgr/fragments/nmake/library_no_static: idem
	* mgr/fragments/nmake/jar: idem
	* mgr/fragments/nmake/java_header: idem
	* mgr/fragments/nmake/install_includes_header: idem
	* mgr/fragments/nmake/dependencies: Do not attempt to include the dependencies
	file if	non-existent
	* mgr/fragments/nmake/group: Make ${GROUP} also depend on
	$(${GROUP}_dependencies)
	* mgr/fragments/nmake/check_application_header: Improve control of Make verbosity,
	make ${CONSTITUENT}check depend on $(cmt_local_${CONSTITUENT}_makefile)
	* mgr/fragments/nmake/make_header: Change the names of the files recording the
	setup to $(bin)setup.nmake and $(bin)setup_${CONSTITUENT}.nmake. Add a rule with
	an empty command for $(use_requirements) for optimisation
	* mgr/fragments/nmake/constituents_trailer: Remove the connection between
	binclean and clean targets to make the former a fast removal of $(bin)
	* mgr/fragments/nmake/cleanup_header: Add a clean target dependent on
	${CONSTITUENT}clean
	
2008-12-17    <rybkin@lal.in2p3.fr> 381
	
	* source/cmt_language.h: In class Language, replace the members
	dependencies_options, native_dependencies with m_dependencies_options,
	m_native_dependencies and make them private, introduce member functions
	to retrieve the values and to setup m_native_dependencies member on demand
	for the language(s) that is/are actually used (rather than for all known)
	* source/cmt_language.cxx: Implement the introduced functions
	dependencies_options and native_dependencies
	* source/cmt_generators.cxx: Make use of Language::dependencies_options ()
	and Language::native_dependencies () functions
	* source/cmt_generator.cxx: In function CmtGenerator::fill_names_outputs,
	replace parts of the sources paths (m_LINE) with standard macros, if
	possible
	* mgr/fragments/document_header: Improve diagnostic messages by using the
	standard macros
	
2008-12-15    <rybkin@lal.in2p3.fr> 380
	
	* source/cmt_parser.cxx: In functions fill_for_use_libraries and
	fill_for_all_constituents, discard the previous modification concerning the
	use_libraries and <constituent>_libraries macros. This is in order to be
	consistent with the command "cmt build library_links" that creates symlinks
	based on the used packages macro <package>_libraries regardless of the
	-no_auto_imports options
	
2008-12-14    <rybkin@lal.in2p3.fr> 379
	
	* source/cmt_parser.cxx: In function fill_for_use_stamps, ensure that the
	use_stamps macro is set taking into account the -no_auto_imports options,
	in function fill_for_all_constituents, set the <constituent>_stamps macro
	to the stamps introduced by the -import=<package> option(s). Similar for
	use_libraries, <constituent>_libraries macros
	* mgr/fragments/application: Make use of the <constituent>_stamps macro
	* mgr/fragments/nmake/application: idem
	
2008-12-13    <rybkin@lal.in2p3.fr> 378
	
	* source/cmt_language.h: In class Language, introduce the members
	dependencies_options, native_dependencies
	* source/cmt_language.cxx: In class Language, in function action, add the
	parsing of the -dependencies_options=OPTIONS option, in function show,
	add the display of that option, implement the setup_native_dependencies
	function to set <language>.native_dependencies to true, if
	<language>.dependencies_options expands to a non-empty string
	* source/cmt_generator.h: In class CmtGenerator, add the m_DEPENDENCIESOPTS
	member
	* source/cmt_generator.cxx: Handle the m_DEPENDENCIESOPTS member
	* source/cmt_generators.cxx: In function LibraryGenerator::module_file_action,
	replace the DEPENDENCIESOPTS template in the <language>, <language>_library
	fragments with the value of <language>.dependencies_options, do not include
	the dependencies fragment in the constituent (library/application) Make
	file, if the language preprocessor(s) of all the source file(s) support the
	generation of dependencies and the corresponding compiler options are
	passed via the -dependencies_options=OPTIONS option of the language(s)
	* mgr/fragments/cpp: Implement the generation of dependencies Make files
	(one per source file) making use of the language compiler if the
	the corresponding compiler options are passed
	* mgr/fragments/cpp_library: idem
	* mgr/fragments/c: idem
	* mgr/fragments/c_library: idem
	* mgr/fragments/nmake/cpp: idem
	* mgr/fragments/nmake/cpp_library: idem
	* mgr/fragments/nmake/c: idem
	* mgr/fragments/nmake/c_library: idem
	* mgr/requirements: define the cppdepflags, cdepflags macros to generate
	dependencies making use of the language compiler for Linux, Darwin, VisualC
	when the tags cpp_native_dependencies, c_native_dependencies are activated,
	pass cppdepflags, cdepflags to the c++, c languages, define the
	format_dependencies macro
	* src/Makefile.core: Add the dep_echo, dep_silent macros to be used when
	generating dependencies, add .make .stamp .cxx to the list of known
	suffixes for optimisation
	* src/NMakefile.core: idem
	* src/Makefile.header: Remove the Make rule for src/Makefile.core
	* mgr/fragments/constituent: In case STRUCTURED_OUTPUT is defined, create
	the $(bin)${CONSTITUENT} here rather than in the constituent Make file
	* mgr/fragments/constituent_lock: idem
	* mgr/fragments/make_header: idem
	* mgr/NMake: Filter macros containing personal names out of VisualC.nmake
	* mgr/VisualC.nmake: idem
	* mgr/cmt_format_deps.sh: Introduced to be used for the generation of
	one dependencies Make file per source file
	* mgr/cmt_format_deps.bat: idem
	
2008-11-29    <rybkin@lal.in2p3.fr> 377
	
	* source/cmt_project.cxx: In function show_paths, introduce and implement
	the -d option of the "cmt show path" command to show how the the package
	search paths list is formed (default: the original succinct one line per
	path output)
	* source/cmt_project.h: idem
	* source/cmt_parser.cxx: idem
	* source/cmt_commands.cxx: idem. Add help text for the introduced option.
	
2008-11-28    <rybkin@lal.in2p3.fr> 376
	
	* source/cmt_parser.cxx: In function fill_for_all_constituents, ensure that
	the <constituent>_use_linkopts macro is set in case the constituent
	-import=<package> options effectively import nothing

2008-11-18    <rybkin@lal.in2p3.fr> 375
	
	* source/cmt_generator.h: Introduce function CmtGenerator::fill_names_outputs
	in order to fill the Make LINE macro taking in account the constituent
	-k=regexp, -x=regexp options
	* source/cmt_generator.cxx: Implement the CmtGenerator::fill_names_outputs
	function
	* source/cmt_generators.cxx: Make use of the CmtGenerator::fill_names_outputs
	function to fill m_LINE. In function DependencyGenerator::build, allow for
	the options specification Windows style (/option[:value]) as the Windows
	command shell may not pass on -option=value with the = character
	* mgr/fragments/dependencies: Restore passing the arguments on to the
	$(build_dependencies) command (via $(LINE)) to allow for external tool use
	* mgr/fragments/nmake/dependencies: idem, use the -out:file option (rather
	than -out=file)
	* mgr/cmt_build_deps.sh: Add and implement options -no_stamps (creating
	stamps if not specified), -out=<dependencies file>.
	Use the same preprocessor flags as those used in fragments c, c_library,
	cpp, cpp_library. Treat the files with non-C or non-C++ extensions as C++
	files. Allow for the use of macro c_pp to specify the C preprocessor (the
	tool used by default is cpp -M)
	* mgr/cmt_filter3_version.sh: Minor correction in the description
	* mgr/cmt_lsb_system_version.sh: Add script to retrieve the Linux
	distribution info on LSB conformant systems in the format <distro>-<version>
	* mgr/cmt_filter1_version.sh: Add script to keep the major version only (in
	tags)
	
2008-11-02    <rybkin@lal.in2p3.fr> 374
	
	* mgr/fragments/nmake/constituent: Do not pass the NMake QUICK macro value
	from constituents.nmake to constituent *.nmake files on the command line
	as it is not necessary
	* mgr/fragments/nmake/constituent_lock: idem
	
2008-11-01    <rybkin@lal.in2p3.fr> 373
	
	* src/NMakefile.header: Do not rebuild any *.nmake or dependencies files
	when the NMake QUICK macro is set to a non-empty string
	* mgr/fragments/nmake/constituents_header: idem
	* mgr/fragments/nmake/constituent: idem
	* mgr/fragments/nmake/constituent_lock: idem
	* mgr/fragments/nmake/dependencies: idem
	
2008-11-01    <rybkin@lal.in2p3.fr> 372
	
	* source/cmt_project.h: Optimise performance of the previous change. In
	class Project, change method ordered_projects to return ProjectPtrVector,
	add method visit (int&, ProjectPtrVector&), add member m_order
	* source/cmt_project.cxx: Implement method visit (int&, ProjectPtrVector&),
	make use of it to re-implement method Project::ordered_projects, use the
	latter in Project::fill_cmtpaths
	
2008-10-30    <rybkin@lal.in2p3.fr> 371
	
	* source/cmt_project.h: In class IProjectVisitor, add method in_again to
	be executed when the project is visited more then once. In class Project,
	add method ordered_projects to return ProjectVector ordered according to
	the CMTPATH entries, add method visit (IProjectVisitor&, ProjectPtrVector&),
	add member m_visits to hold the number of times the project has been visited
	* source/cmt_project.cxx: Implement method Project::ordered_projects,
	implement method in_again in classes VisitorForFillCMTPATH,
	VisitorForShowPaths. In	Project::broadcast, Project::reverse_broadcast make
	use of ordered_projects	to ensure that cmtpath_pattern and
	cmtpath_pattern_reverse are applied according to the order of the CMTPATH
	entries. Implement method visit (IProjectVisitor&, ProjectPtrVector&) to
	be used to visit the projects tree - the order is the projects upon which
	the project depends directly, then the direct dependencies of the of the
	first dependency, of the second dependency and so on. That is first left to
	right, then downwards. In method Project::start_visit, make use of the visit
	
2008-10-29    <rybkin@lal.in2p3.fr> 370
	
	* source/cmt_parser.cxx: In function fill_for_branches, generate the BIN
	macro to hold an absolute path for the path specified by the bin macro
	(both are file separator terminated)
	* source/cmt_generators.cxx: In function DependencyGenerator::build,
	implement the -out=file option of the cmt build dependencies command,
	do not read the existing dependency file (if any) with the -all_sources
	option
	* mgr/fragments/dependencies: Make use of the -out=file option to allow
	for the relocation of the binary build directory
	* mgr/fragments/nmake/dependencies: idem
	* mgr/fragments/library: Allow for the relocation of the binary	build
	directory (via redefinition of the bin macro)
	* mgr/fragments/library_no_share: idem
	* mgr/fragments/library_no_static: idem
	* mgr/fragments/application: idem
	* mgr/fragments/cpp_library: idem
	* mgr/fragments/cpp: idem
	* mgr/fragments/c_library: idem
	* mgr/fragments/c: idem
	* mgr/fragments/fortran_library: idem
	* mgr/fragments/fortran: idem
	* mgr/fragments/cleanup_objects: idem
	* mgr/fragments/nmake/library: idem
	* mgr/fragments/nmake/library_no_share: idem
	* mgr/fragments/nmake/library_no_static: idem
	* mgr/fragments/nmake/application: idem
	* mgr/cmt_make_shlib_common.sh: idem
	* mgr/cmt_make_shlib.bat: idem
	* mgr/requirements: idem
	* src/NMakefile.header: Allow for the relocation of the binary build
	directory (via redefinition of the bin macro), place all the make files
	generated by CMT in the binary build directory
	* mgr/fragments/nmake/constituents_header: idem
	* mgr/fragments/nmake/constituent: idem
	* mgr/fragments/nmake/constituent_lock: idem
	* mgr/fragments/nmake/make_header: idem
	
2008-10-20    <rybkin@lal.in2p3.fr> 369
	
	* source/cmt_parser.cxx: In function fill_for_all_constituents, correct the
	setting of macros in case the -import option for constituents is used so as
	to import what is requested only. Do not set macro ${CONSTITUENT}linkopts
	* mgr/fragments/application: Use $(cmt_installarea_linkopts) with
	$(${CONSTITUENT}_use_linkopts) instead of $(use_linkopts)
	* mgr/fragments/dsp_application_header: idem
	* mgr/fragments/dsp_windows_header: idem
	* mgr/fragments/nmake/application: idem
	
2008-09-24    <rybkin@lal.in2p3.fr> 368
	
	* source/cmt_log.h: Introduce the Verbose level of diagnostic messages that
	is higher than the Debug level and lower than the Info level.
	* source/cmt_parser.cxx: Set the Verbose level of diagnostic messages if
	the CMTVERBOSE environment variable is set to a non-empty string
	* source/cmt_symbol.cxx: Print the message about non-existent directories
	in path-like environment variables when the Verbose level is activated
	* source/cmt_generator.cxx: Optimise the build_windefs function
	
2008-09-22    <rybkin@lal.in2p3.fr> 367
	
	* source/cmt_generators.cxx: Implement the -no_static option for libraries
	* source/cmt_generators.h: idem
	* source/cmt_parser.cxx: idem
	* source/cmt_commands.cxx: idem. Add the help text for the enhanced
	cmt build windefs command which now accepts multiple object and/or library
	files on the command line and/or via command file(s) and has an option
	to specify the library name
	* source/cmt_generator.h: In the build_windefs function, implement the
	enhanced functionality of the cmt build windefs command
	* source/cmt_generator.cxx: idem
	* mgr/fragments/constituent_lock: Minor code cleanup
	* mgr/requirements: Add the c option for the ar utility on Linux to avoid
	the warning. Declare the library_no_static make fragment
	* mgr/fragments/library_no_static: Introduce the make fragment to use with
	the -no_static option
	* mgr/fragments/nmake/library_no_static: idem for Windows
	
2008-07-30    <rybkin@lal.in2p3.fr> 366
	
	* mgr/cmt_gcc_version.sh: Set the "C" locale
	* mgr/cmt_cxx_version.sh: idem
	* mgr/cmt_dcc_version.sh: idem
	* mgr/cmt_CC_version.sh: idem
	* mgr/cmt_filter_version.sh: idem
	* mgr/cmt_filter3_version.sh: idem
	* mgr/cmt_linux_version.sh: idem
	* mgr/cmt_system.sh: idem
	* mgr/cmt_make_shlib.sh: idem
	* mgr/cmt_make_shlib_common.sh: Set GREP_OPTIONS to the empty string, if
	not empty
	
2008-07-19    <rybkin@lal.in2p3.fr> 365
	
	* source/cmt_system.cxx: In the CmtSystem::compress_path function, take
	into account one more boundary case
	
2008-07-18    <rybkin@lal.in2p3.fr> 364
	
	* source/cmt_system.cxx: In the CmtSystem::compress_path function, add the
	replacement of "/.." with "/" (one cannot walk down past the root), more
	careful treatment of some boundary cases
	* source/cmt_parser.cxx: Add 2 debug level messages in the function
	Cmt::guess_current_project
	
2008-06-25    <rybkin@lal.in2p3.fr> 363
	
	* src/Makefile.header: Ensure that $(cmt_final_setup) is (re)built when
	make is run with non default target(s)
	
2008-06-24    <rybkin@lal.in2p3.fr> 362
	
	* source/cmt_use.h: In the Package class, declare get_version_file_name ()
	to return "version.cmt", and get_version () to retrieve the package version
	when structuring style used is `without_version_directory' by checking:
	1) the get_version_file_name () file if available (and readable)
	2) version statement in the package requirements file
	* source/cmt_use.cxx: Implement and systematically use the
	get_version_file_name (), and get_version () functions
	* source/cmt_parser.cxx: Systematically use the implemented functions
	* source/cmt_awk.cxx: idem
	* source/cmt_cvs.cxx: idem
	
2008-06-22    <rybkin@lal.in2p3.fr> 361
	
	* source/cmt_parser.cxx: Ensure the requirements file in ${CMTHOME} is
	parsed if exists
	* source/cmt_project.cxx: Ensure the cmt broadcast command works correctly
	in case CMTHOME or/and CMTUSERCONTEXT is/are defined
	
2008-05-30    <rybkin@lal.in2p3.fr> 360
	
	* source/cmt_log.h: Introduce an enumeration to hold diagnostic messages
	levels (Debug, Info, Warning, Error, Fatal). Implement a class to hold
	and manage diagnostic messages prefix, level (default values: #CMT--->,
	Info), and functions to produce	diagnostic messages
	* source/cmt_parser.cxx: Implement functions to configure diagnostic
	messages prefix, and level using the environment variables CMTMSGPREFIX,
	and CMTDEBUG, CMTINFO, CMTWARNING, CMTERROR, CMTFATAL (in order	of
	precedence) if set to a non-empty string. Extend functions to configure
	the diagnostic messages level using the existing command line options
	-warnings (Warning), -disable_warnings (Error), -quiet (Fatal).
	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. Implement
	the CMTFLAGS functionality described above.
	Use the diagnostic message functions for the messages
	* source/cmt.h: idem
	* source/cmt_tag.cxx: Use the diagnostic message functions for the messages
	* source/cmt_awk.cxx: idem
	* source/cmt_system.cxx: idem
	* source/cmt_use.cxx: idem
	* source/cmt_install_area.cxx: idem
	* source/cmt_fragment.cxx: idem
	* source/cmt_generators.cxx: idem
	* source/cmt_constituent.cxx: idem
	* source/cmt_syntax.cxx: idem
	* source/cmt_triggers.cxx: idem
	* source/cmt_error.cxx: idem
	* source/cmt_model.cxx: idem
	* source/cmt_commands.cxx: idem
	* source/cmt_project.cxx: idem
	* source/cmt_pattern.cxx: idem
	* source/cmt_lock.cxx: idem
	* source/cmt_generator.cxx: idem
	* source/cmt_cvs.cxx: idem
	* source/cmt_symbol.cxx: idem
	* mgr/requirements: Do not use the -quiet command line option
	* mgr/fragments/constituent:  idem
	* mgr/fragments/make_setup: idem
	* mgr/fragments/check_application_header: idem
	* mgr/fragments/constituents_header: idem
	* mgr/fragments/constituent_lock: idem
	* mgr/fragments/generator_header: idem
	* mgr/fragments/cleanup_header: Improve control of Make verbosity
	* mgr/fragments/make_setup_nmake: Do not use the -quiet command line option
	* mgr/fragments/nmake/constituent: idem
	* mgr/fragments/nmake/check_application_header: idem
	* mgr/fragments/nmake/constituents_header: idem
	* mgr/fragments/nmake/yacc: idem
	* mgr/fragments/nmake/constituent_lock: idem
	* mgr/fragments/nmake/lex: idem
	* mgr/fragments/nmake/generator_header: idem
	* mgr/fragments/nmake/yacc_library: idem
	* mgr/fragments/nmake/lex_library: idem
	* src/Makefile.header: idem, improve control of Make verbosity
	* src/constituents.make: Do not use the -quiet command line option
	* src/NMakefile.header: idem
	* src/constituents.nmake: idem

2008-05-14    <rybkin@lal.in2p3.fr> 359
	
	* mgr/fragments/cleanup_header: Add a workaround to work in the parallel
	execution mode with the PEDANTIC Make switch
	
2008-05-13    <rybkin@lal.in2p3.fr> 358
	
	* source/cmt_project.cxx: Add the real CMTPATH of project to the paths returned
	by Project::fill_selection ()
	* source/cmt_parser.cxx: When cmt broadcast is run, ensure that the current package
	is not skipped due to symlinks in the paths 
	
2008-04-21    <rybkin@lal.in2p3.fr> 357
	
	* mgr/fragments/dependencies: Do not include the dependencies fragment in
	the constituent makefile at all when make clean is run
	
2008-04-19    <rybkin@lal.in2p3.fr> 356
	
	* mgr/fragments/dependencies: Do not re-calculate the dependencies when
	make clean is run
	
2008-04-17    <rybkin@lal.in2p3.fr> 355
	
	* source/cmt_cvs.cxx: Add the -rs suffix option to the cmt checkout command
	(proposed by David Rousseau)
	
2008-04-15    <rybkin@lal.in2p3.fr> 354
	
	* source/cmt_parser.cxx: Take into account current value of type CmtDirStyle
	when checking for file version.cmt
	* source/cmt_generators.cxx: make a copy of a vector of type Use::UsePtrVector
	rather than get a reference
	
2008-04-14    <rybkin@lal.in2p3.fr> 353
	
	* source/cmt_cvs.cxx: Correct the handling of the -with_version_directory
	and -without_version_directory command line options with cmt checkout.
	Comment out a duplicate "cmt -quiet config" after the checkout
	
2008-04-11    <rybkin@lal.in2p3.fr> 352
	
	* source/cmt_parser.cxx: Remove all the library links built, including those
	for the current package
	
2008-02-23    <rybkin@lal.in2p3.fr> 351
	
	* mgr/fragments/constituent_lock: Remove the lockfile on receipt of signal HUP, INT, TERM
	(1, 2, 15)
	
2008-02-22    <rybkin@lal.in2p3.fr> 350
	
	* src/NMakefile.core: Replace CMTMSGHDR with CMTMSGPREFIX
	* src/Makefile.core: idem
	* mgr/cmt_install_action.sh: idem
	* mgr/cmt_uninstall_action.sh: idem
	* mgr/cmt_make_shlib.sh: idem
	* mgr/fragments/cleanup_header: Improve diagnostic messages
	* mgr/fragments/tex: Correct the fragment
	
2008-02-21    <rybkin@lal.in2p3.fr> 349
	
	* src/NMakefile.core: Control the verbosity of NMake (similar to Make, see below)
	* src/NMakefile.header: idem
	* mgr/fragments/nmake/constituents_header: idem
	* mgr/fragments/nmake/group: idem
	* mgr/fragments/nmake/constituent: idem, correct the passing of NMake options
	* mgr/fragments/nmake/constituent_lock: idem, correct the passing of NMake options
	* mgr/fragments/nmake/constituents_trailer: idem
	* mgr/fragments/nmake/application_header: idem
	* mgr/fragments/nmake/application: idem
	* mgr/fragments/nmake/library_header: idem
	* mgr/fragments/nmake/library: idem
	* mgr/fragments/nmake/library_no_share: idem
	* mgr/fragments/nmake/c: idem
	* mgr/fragments/nmake/c_library: idem
	* mgr/fragments/nmake/cpp: idem
	* mgr/fragments/nmake/cpp_library: idem
	* mgr/fragments/nmake/fortran: idem
	* mgr/fragments/nmake/fortran_library: idem
	* mgr/fragments/nmake/java_header: idem
	* mgr/fragments/nmake/jar_header: idem
	* mgr/fragments/nmake/jar: idem
	* mgr/fragments/nmake/installer: idem
	* mgr/cmt_install_action.bat: idem
	* mgr/cmt_uninstall_action.bat: idem
	* mgr/fragments/library: Improve control of the verbosity of Make
	* mgr/fragments/jar_header: idem
	* mgr/fragments/installer: idem
	
2008-02-18    <rybkin@lal.in2p3.fr> 348
	
	* source/cmt_system.cxx: Check the pclose () function return value to obtain
	the exit status of the executed command
	(used in the CvsImplementation::execute_and_retry () method)
	
2008-02-16    <rybkin@lal.in2p3.fr> 347
	
	* source/cmt_parser.cxx: Issue a warning when structuring style used
	is `without_version_directory' but `version.cmt' file is missing (suggested
	by Laurent Vacavant). Issue a warning when `version.cmt' file exists
	but cannot be read
	
2008-02-16    <rybkin@lal.in2p3.fr> 346
	
	* src/Makefile.core: Improve the control of the verbosity of Make
	* mgr/fragments/library: idem
	* mgr/cmt_install_action.sh: idem
	* mgr/cmt_uninstall_action.sh: idem
	* mgr/cmt_make_shlib.sh: idem
	
2008-02-15    <rybkin@lal.in2p3.fr> 345
	
	* src/Makefile.core: Control the verbosity of Make 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
	Control the prefix of the CMT messages via the Make variable CMTMSGHDR
	(default value: #CMT--->)
	* src/Makefile.header: idem
	* mgr/fragments/constituents_header: idem
	* mgr/fragments/group: idem
	* mgr/fragments/constituent: idem
	* mgr/fragments/constituent_lock: idem
	* mgr/fragments/constituents_trailer: idem
	* mgr/fragments/make_header: idem
	* mgr/fragments/application_header: idem
	* mgr/fragments/application: idem
	* mgr/fragments/application_launcher: idem
	* mgr/fragments/library_header: idem
	* mgr/fragments/library: idem
	* mgr/fragments/library_no_share: idem
	* mgr/fragments/dependencies: idem
	* mgr/fragments/c: idem
	* mgr/fragments/c_library: idem
	* mgr/fragments/cpp: idem
	* mgr/fragments/cpp_library: idem
	* mgr/fragments/fortran: idem
	* mgr/fragments/fortran_library: idem
	* mgr/fragments/java_header: idem
	* mgr/fragments/jar: idem
	* mgr/fragments/cleanup_application: idem
	* mgr/fragments/installer: idem
	* mgr/cmt_make_shlib.sh: idem
	* mgr/cmt_install_action.sh: idem
	* mgr/cmt_uninstall_action.sh: idem
	
2008-02-09    <rybkin@lal.in2p3.fr> 344

	* mgr/cmt_install_action.sh: Optimise by reducing the number of processes
	making use of the POSIX shell features
	* mgr/cmt_uninstall_action.sh: idem, fix options processing
	
2008-02-02    <rybkin@lal.in2p3.fr> 343

	* source/cmt_parser.cxx: Correct treatment of the -with_version_directory
	and -without_version_directory command line options
	* source/cmt.h: idem
	
2008-02-02    <rybkin@lal.in2p3.fr> 342

	* source/cmt_project.h: Optimise the use of realpath_
	* source/cmt_project.cxx: idem
	* source/cmt_use.cxx: idem
	
2008-01-31    <rybkin@lal.in2p3.fr> 341

	* mgr/fragments/dependencies: Make sure the dependencies are re-calculated
	whenever the included files are changed (the problem pointed out by Marco)
	* mgr/fragments/c: idem
	* mgr/fragments/c_library: idem
	* mgr/fragments/cpp: idem
	* mgr/fragments/cpp_library: idem
	* mgr/fragments/fortran: idem
	* mgr/fragments/fortran_library: idem
	* mgr/fragments/lex: idem
	* mgr/fragments/lex_library: idem
	* mgr/fragments/yacc: idem
	* mgr/fragments/yacc_library: idem

2008-01-25    <rybkin@lal.in2p3.fr> 340

	* source/cmt_system.h: Improve the handling of symlinks in the paths
	* source/cmt_system.cxx: idem
	* source/cmt_use.cxx: idem
	* source/cmt_project.cxx: idem
	* source/cmt_parser.cxx: Comment out a duplicate piece of code
	
2008-01-18    <rybkin@lal.in2p3.fr> 339

	* mgr/fragments/constituent: Do not rebuild any *.make files when QUICK
	is defined, build all the *.make files in the binary tag directory,
	do not use MAKEFLAGS explicitly, do not leave a lock file in /tmp
	* mgr/fragments/constituent_lock: idem
	* mgr/fragments/constituents_header: idem
	* mgr/fragments/make_header: idem
	* src/Makefile.header: idem
	
2008-01-14    <rybkin@lal.in2p3.fr> 338

	* mgr/cmt_dcc_version.sh: Optimise by reducing the number of processes
	making use of sed
	* mgr/cmt_gcc_version.sh: idem
	* mgr/cmt_filter_version.sh: idem
	* mgr/cmt_filter3_version.sh: idem
	* mgr/cmt_linux_version.sh: Optimise by reducing the number of processes
	making use of sed and the POSIX shell features (patch from KELEMEN Peter)
	
2008-01-14    <rybkin@lal.in2p3.fr> 337

	* source/cmt_parser.cxx: 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
	
2007-11-25    <rybkin@lal.in2p3.fr> 336

	* mgr/cmt_lockfile.bat: Enhance basic semaphore-file creator for Windows
	* mgr/cmt_lockfile.sh: Enhance basic semaphore-file creator for Unix
	* mgr/requirements: Use enhanced basic semaphore-file creator for Windows
	* mgr/lockfile.bat: Make obsolete basic semaphore-file creator for Windows
	* mgr/lockfile.sh: Make obsolete basic semaphore-file creator for Unix
	
2007-11-22    <rybkin@lal.in2p3.fr> 335

	* source/cmt_generators.h: idem
	* source/cmt_generators.cxx: idem
	* source/cmt_lock.cxx: idem
	* mgr/fragments/constituent_lock: idem
	* mgr/fragments/nmake/constituent_lock: idem
	* mgr/requirements: Implement a locking mechanism to allow simultaneous/parallel
	builds for multiple binary tags. Used suggestions from Pere, Stefan, and Andrea
	* mgr/lockfile.bat: Basic semaphore-file creator for Windows
	* mgr/lockfile.sh: Basic semaphore-file creator for Unix
	
2007-10-31    <rybkin@lal.in2p3.fr> 334

	* source/cmt_parser.cxx: idem
	* source/cmt_commands.cxx: idem
	* source/cmt_generator.h: idem
	* source/cmt_generator.cxx: idem
	* source/cmt_generators.h: idem
	* source/cmt_generators.cxx: Implement the new -out=file option of the
	cmt build constituent_makefile command
	* mgr/fragments/constituent: Make use of the new -out=file option of the
	cmt build constituent_makefile command to allow simultaneous builds for multiple
	binary tags

2007-09-01    <rybkin@lal.in2p3.fr> 333

	* source/cmt_deps_builder.h: idem
	* source/cmt_deps_builder.cxx: idem
	* source/cmt_generators.h: idem
	* source/cmt_generators.cxx: Implement a header file filter mechanism to replace
        header files matching a pattern with a stamp file when calculating files dependencies

2007-07-09    <rybkin@lal.in2p3.fr> 332

	* source/cmt_deps_builder.cxx: Restore the erase of continuation character logic

2007-07-06    <rybkin@lal.in2p3.fr> 331

	* source/cmt_awk.cxx: Reinstate print out

2007-04-27    <arnault@lal.in2p3.fr> 330

	* source\cmt_cvs.cxx (class CvsImplementation): Forgot to consider
	the minimal case where only one tag exists for the package, the
	tag related with the original import.

2007-04-24    <arnault@lal.in2p3.fr> 329

	* source/cmt_cvs.cxx (class CvsImplementation): Don't consider CVS branches when tag is not specified

	* source/cmt_project.cxx: Protect warning messages with -quiet

	* source/cmt_system.cxx: idem
	* source/cmt_system.h: Improvement of the FilePath class definition

	* source/cmt_parser.cxx: Prepare using FilePath objet for current dir
	Better management of the -quiet option
	
	* source/cmt.h: Prepare using FilePath objet for current dir

2007-04-23    <arnault@lal.in2p3.fr> 328

	* mgr/fragments/java_header: Make use of the $(jar) macro

2007-04-23    <arnault@lal.in2p3.fr> 327

	* source/cmt_system.cxx: activate the support to PWD env. var.
	Start the definition of the new generic class FilePath to store physical and logical file specifications

2007-04-20    <arnault@lal.in2p3.fr> 327

	* source/cmt_use.cxx: idem
	* source/cmt_triggers.cxx: idem
	* source/cmt_tag.cxx: idem
	* source/cmt_system.cxx: idem
	* source/cmt_syntax.cxx: idem
	* source/cmt_symbol.cxx: idem
	* source/cmt_sequence.cxx: idem
	* source/cmt_script.cxx: idem
	* source/cmt_regexp.cxx: idem
	* source/cmt_project.cxx: idem
	* source/cmt_pattern.cxx: idem
	* source/cmt_parser.cxx: idem
	* source/cmt_model.cxx: idem
	* source/cmt_log.cxx: idem
	* source/cmt_lock.cxx: idem
	* source/cmt_language.cxx: idem
	* source/cmt_install_area.cxx: idem
	* source/cmt_group.cxx: idem
	* source/cmt_generators.cxx: idem
	* source/cmt_generator.cxx: idem
	* source/cmt_fragment.cxx: idem
	* source/cmt_cvs.cxx: idem
	Send error & warning messages to stderr instead of stdout 

	* source/cmt_constituent.cxx: idem
	* source/cmt_cmtpath_pattern.cxx : idem
	* source/cmt_branch.cxx : idem
	* source/cmt_awk.cxx : idem
	* source/cmt.cxx: formatting text

2007-03-28 Vincent Garonne <garonne@lal.in2p3.fr> 326

	* source/cmt_deps_builder.cxx, cmt_syntax.cxx: Change or by ||, not by ! which create problem on windows

2007-03-22 Vincent Garonne <garonne@lal.in2p3.fr> 325

	* source/cmt.cxx: Extract the pure status code when executing an action

2007-03-07 Vincent Garonne <garonne@lal.in2p3.fr> 324

	* source/cmt_commands.cxx: Remove a extra debugging print remained...
	
2007-02-08 Vincent Garonne <garonne@lal.in2p3.fr> 323

	* source/cmt_parser.cxx: Disable the creation of ROOT/CONFIG variable for the PACKAGE_POLICY_<project> virtual package  

2007-01-02 Vincent Garonne <garonne@lal.in2p3.fr> 322

	* source/cmt_parser.cxx:  update to deal with the action return status code
	 and the -no_auto_imports differents cases.
	* source/cmt_constituents.cxx: Add support for the -import=PkgA,PkgB
	* source/cmt_error.*: update to deal with the action return status code 
	* source/cmt.cxx: return status code	
	
2007-31-01 Vincent Garonne <garonne@lal.in2p3.fr> 321

	* cmt_deps_builder.cxx:  Add support for space, line continuing character, etc.

2006-15-11 Vincent Garonne <garonne@lal.in2p3.fr> 320

    * mgr/fragments/group, mgr/fragments/nmake/group: Add macros $(${GROUP}_pre_constituents),  $(${GROUP}_post_constituents) for having target executed by default.
    
2006-14-11 Vincent Garonne <garonne@lal.in2p3.fr> 319

    *  cmt.h, cmt_parser.cxx: Generate a native_version.cmt file if the <package>_native_version macro exists at the config step.

2006-14-11 Vincent Garonne <garonne@lal.in2p3.fr> 318

    *  cmt_tag.cxx: Correct the fact that "apply_tag" protected by a private section is exported in all the clients packages.

2006-10-24    <arnault@lal.in2p3.fr> 317

	* source\\cmt_cmtpath_pattern.cxx (apply): Implement the two
	different traversal modes for the project graph

	* source\\cmt_cmtpath_pattern.h (class CmtPathPattern): Add extra
	arguments to action and add AND a new attribute to hold the
	possible revert mode in the project traversal

	* source\\cmt_syntax.cxx (class KwdCmtPathPatternRevert): Implement
	the parsing of the new keyword simply by adding an extra optional
	arg to the CmtPathPattern::action
	(SyntaxParser): Add a new keyword cmtpath_pattern_revert to handle
	project traversal in reverse order (wrt the current order of
	cmtpath_pattern)

2006-18-10 Vincent Garonne <garonne@lal.in2p3.fr> 317

    *  cmt_commands.*, cmt_parser.cxx, cmt.h: Add the -disable_warnings option to not print certains warnings, e.g. the CMTSITE value etc.
    
2006-12-10 Vincent Garonne <garonne@lal.in2p3.fr> 316

    * source/cmt_parser.cxx, source/cmt_syntax.cxx, source/cmt_use.*: Enable and propagate the -native_version syntax at the use level. 
     IMPORTANT NOTES: STILL NOT FINISHED.
     
2006-12-10 Vincent Garonne <garonne@lal.in2p3.fr> 315

    * source/cmt_std.h: add __APPLE__ for removing compilation warnings    

2006-11-10 Vincent Garonne <garonne@lal.in2p3.fr> 314

    * source/cmt_project.*: Add two functions - get_project_releases, select_release    
    * source/cmt_project.*: Add support for wildcarded project dependencies

2006-10-10 Vincent Garonne <garonne@lal.in2p3.fr> 313

    * source/cmt_symbol.*, source/cmt_parser.*, source/cmt_commands.*, source/cmt_syntax.*, source/cmt.h: Add support for the show project author command
    * src/setup.*: Add auto-expand for project_author
 
2006-09-28 Vincent Garonne <garonne@lal.in2p3.fr> 312

	* source/cmt_symbol.cxx: Bug fixed on the windows platform.  

2006-08-17 Vincent Garonne <garonne@lal.in2p3.fr> 311

        * source/cmt_syntax.cxx: Add support for author syntax to project

2006-06-15 Vincent Garonne <garonne@lal.in2p3.fr> 310

        * source/cmt_system.cxx: Correct touch function to conserve permission 

2006-06-15 Vincent Garonne <garonne@lal.in2p3.fr> 309

        * mgr/fragments/application, mgr/fragments/c_library, mgr/fragments/cleanup_librarymgr/fragments/cpp, mgr/fragments/cpp_library, mgr/fragments/dependencies, mgr/fragments/fortran_library, mgr/fragments/library: Add the support for the PRINT_PREREQISITES mode during the make operation

	* mgr/fragments/library: Fixed a bug

2006-05-31 Vincent Garonne <garonne@lal.in2p3.fr> 308

        * source/cmt_cvs: Add modification to deal with non working checkout by creating the cvs files manually ,e.g. cvs entries.
        * source/cmt_cvs: Add the "-f" option which supposes to force cvs to ignore the .cvsrc file during cvs command execution. 

2006-05-20  Christian Arnault  <arnault@lal.in2p3.fr> 307

	* source/cmt_pattern.cxx (expand): Make use of
	use->get_cmtpath_and_offset to compute the project of the package
	when expanding the <project> template to fix packages with offset

2006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 306

        * cmt_generator.cxx: Add the fixe recommend by markus to deal with extern c data on visual

2006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 305

        * mgr/fragments/cleanup_header, mgr/fragments/constituent: Add a PEDANTIC option for building which stop 
        directly after detecting a missing file or target 
        
        * mgr/fragments/constituent, mgr/fragments/constituents_header, mgr/fragments/cleanup_header, 
        mgr/fragments/make_header : correct some bad behaviours and change the internal file name convention
        *setup* -> *_setup* 

2006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 304

        * source/cmt_parser.cxx: Remove only the specific makefiles depending on the platform, e.g. remove *.make 
        on linux and *.nmake on windows

2006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 303

        * source/cmt_commands.cxx, source/cmt_commands.h, source/cmt_parser.cxx, source/cmt_parser.h: Add a new cmt          
        command "relocate" to generate only setup script whithout makefile

        * src/setup.tcsh : Enable the auto-expand mechanism for the relocate command

2006-04-25 Vincent Garonne <garonne@lal.in2p3.fr> 302

        * source/cmt_cvs.cxx: Do the exact mathing for tag during recursive checkout operation

2006-04-24   Christian Arnault  <arnault@lal.in2p3.fr> 301

        * source/cmt_pattern.cxx(expand): Add support for a <project> template in patterns

2006-14-03   Christian Arnault  <arnault@lal.in2p3.fr> 300

	* source/cmt_cvs.cxx: Switch checkout sequence from multi-co to multi update

2006-03-01  Vincent Garonne <garonne@lal.in2p3.fr> 299

	* mgr/requirements: Enable tag v1r18 for the HEAD version 

2006-02-24  Christian Arnault  <arnault@lal.in2p3.fr> 298

	* mgr/requirements: Suppress automatic installation of share/bin & share/lib in CLASSPATH for with_installarea

	* source/cmt_project.cxx (create_project): Suppress a warning message

	* source/cmt_commands.cxx (do_check): Suppress automatic warnings for do_check_configuration
	(do_setup): idem for cmt setup

2006-02-10  Vincent Garonne <garonne@lal.in2p3.fr> 297

        * mgr/requirements: Fill <project>_installarea_linkopts in addition to cmt_installarea_linkopts

2006-02-09  Christian Arnault  <arnault@lal.in2p3.fr> 296

        * mgr/requirements: Fill <project>_installarea_linkopts in addition to cmt_installarea_linkopts

2006-02-07  Christian Arnault  <arnault@lal.in2p3.fr> 295

	* mgr/requirements: Protect cmtpath_patterns with strategies
	use $(CMTCONFIG) instead of $(tag) in cmtpath_patterns

	* source/cmt_parser.cxx (configure_cmt_path): Suppress warnings for bad paths at this stage
	(do_check_configuration): Add set_standard_macros for do_check_configuration

	* source/cmt_commands.cxx (do_check): Activate warnings for check configuration and for setup 

	* source/cmt_symbol.cxx (filter_path_value): Don't kill path item when they don't exist.
	(action): Reset all_sets_done at each symbol definition.
	(all_set): Protect against internal recursivity
	(all_print): Print path settings here.
	(check_all_paths): Add a new function to check all paths.
	(SetBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show)
	(PathBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show)
	(MacroBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show)
	(ActionBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show)
	(SymbolValueList::show): Keep reset to null actions
	Print overridings

	* source/cmt_system.cxx: Add include cmt_map.h for putenv management
	(class CMTPathManager): Suppress generation of an error when the CMTPATH item does not exist 

2006-02-06  Christian Arnault  <arnault@lal.in2p3.fr> 294

	* source/cmt_cvs.cxx (class CvsImplementation): Uses the new CmtSystem::putenv API

	* source/cmt_symbol.cxx (all_set): Uses the new CmtSystem::putenv API to fix setup problems 

	* source/cmt_system.h (class CmtSystem): Modifying the API of the internal putenv function 

	* source/cmt_system.cxx (putenv): Replacing the old putenv implementation with a new one using a static map
	of all used environment variables so as to ensure a stable string

2006-01-31    <arnault@lal.in2p3.fr> 293

	* source/cmt_parser.cxx (configure_cmt_path): Force a warning when CMTPATH contains a non existing item.

	* source/cmt_awk.cxx (scan_path): Restore commented debug printouts after fix.

	* source/cmt_parser.cxx (run): Fix the parsing of requirements file for do_show_clients for use statements without version.

	* source/cmt_awk.cxx (scan_path): Detect the non-version-directory mode and launches the run with appropriate flag.

	* source/cmt_awk.h (class PathScanner): Add an argument to mark that the scanned package
	uses no version directory.

	* mgr/requirements: Removed obsolete pp_cflags for Linux (ticket #15)

2006-01-27 <garonne@lal.in2p3.fr>

	* source/cmt_parser.cxx: Allow with_version_directory option for users.

2006-01-09    <arnault@lal.in2p3.fr> 292

	* source/cmt_project.cxx (create_project): Access CMTPROJECTPATH through 
	symbol or getenv

	* source/cmt_symbol.cxx (get_env_value): Make use of the global 
	display inhibitor to ensure that temporary value builder will not
	show unexpected output.

	* source/cmt_symbol.h (class Symbol): Define a special accessor function for
	retrieving the value a symbols associated with an env. var. (typically
	for CMTPATH like variables)

	* source/cmt_symbol.cxx (action): Trigger the Cmt::configure_cmt_path 
	from CMTPROJECTPATH like CMTPATH

2005-10-31  Christian Arnault  <arnault@lal.in2p3.fr> 291

	* source/cmt_system.cxx (is_version_directory): Permit version
	directories not starting by a letter (eg 1.0)

2005-10-30    <arnault@lal.in2p3.fr> 290

	* source/cmt_symbol.cxx (all_set): Must expand PATH values before
	filtering and setting them

2005-10-28    <arnault@lal.in2p3.fr> 289

	* cmt/fragments/cleanup_header: Temporary hack to deal with missing files
	and to avoid infinite loops in make. However, this must be seen as a ugly hack
	since it considers an Atlas use case with config.h.in. This hack is 
	harmless to any user of this special file though.

	* source/cmt.h
	* source/cmt_parser.cxx
	* source/cmt_commands.h
	* source/cmt_commands.cxx
	* doc/CMTDoc.xml: Add a -warnings option to display various warning messages
 
2005-10-18    <arnault@lal.in2p3.fr> 288

	* mgr/Makefile (bintar): Prepare and cleanup binary directories
	before creating tar balls.

	* mgr/Makefile (Export): Move the docs target from bintar to Export

	* source/cmt_symbol.cxx (print): Filter path values before
	setting them externally

	* source/cmt_symbol.cxx (all_set): Filter path values before
	setting them internally

	* source/cmt_parser.cxx (configure_cmt_path): Filter out CMTPATH
	before creating or updating projects from the CMTPATH value

	* source/cmt_symbol.h (class Symbol): Add a static function to
	filter out faulty items in a PATH symbol

2005-10-17    <arnault@lal.in2p3.fr> 287

	* mgr/Makefile (cmtexe): Use -quiet option whenever using cmt
	within the Makefile of CMT

	* source/cmt_cvs.cxx (class CvsImplementation): Protect against
	empty protocol level (for backward compatibility)

2005-10-15    <arnault@lal.in2p3.fr> 286

	* source/cmt_project.cxx (use_action): Consider empty release for
	Windows (test_directory on Windows does not work with a trailing
	backslash)

2005-10-11  Christian Arnault  <arnault@lal.in2p3.fr> 285

	* source/cmt_project.cxx (create_project): Protection against
	single level directories in CMTPATH (/xxx)

2005-10-11    <arnault@lal.in2p3.fr> 284

	* mgr/fragments/nmake/constituent (clean): Protect against
	unexisting makefile fragment when running the clean target

	* source/cmt_parser.cxx (class StandardMacroBuilder): Enclose
	items in the use_requirements macro into double quotes using the q
	macro. This to cope with spaces in directories on Windows.
	(dos_script_prefix): Add quotes for the -path argument 

	* mgr/requirements: Add a macro definition to hold a double-quote

2005-09-13    <arnault@lal.in2p3.fr> 283

	* mgr/CMT.pacman: Add constraint on version of pacman
	Use ./INSTALL instead of just INSTALL

2005-09-29  Christian Arnault  <arnault@lal.in2p3.fr> 283

	* mgr/fragments/nmake/constituents_trailer (makefilesclean): Remove references to checkuses
	* mgr/fragments/constituents_header (config): Remove references to checkuses
	* mgr/fragments/constituents_trailer (makefilesclean): Remove references to checkuses
	* mgr/fragments/make_header (dirs): Remove references to checkuses
	* mgr/fragments/make_setup (config): Remove references to checkuses

	* source/cmt_parser.cxx (do_broadcast): bug fix: the set_standard_macro was not called 
	prior to set all EVs before the broadcast loop

2005-09-09    <arnault@lal.in2p3.fr> 282

	* mgr/Makefile: Adapt (fix) to changes in the doc directory.

2005-09-07    <arnault@lal.in2p3.fr> 281

	* source/cmt_version.h: fix tag v1r18p20050901

        * source/cmt_cvs.h: Fix bug when generating version.cmt file after checkout

2005-09-05    <arnault@lal.in2p3.fr> 280

	* source/cmt_std.h: Fix std context for CYGWIN

2005-09-05  Christian Arnault  <arnault@lal.in2p3.fr> 279

	* source/cmt_cvs.cxx (class CvsImplementation): Fix do_need_version

	* source/cmt_project.cxx (StrategyMgr): Initialize VersionStrategy using default

2005-09-05    <arnault@lal.in2p3.fr> 278

	* source\\cmt_parser.cxx (do_create): Make use of the
	structure strategy for creating package directory structure.

	* source\\cmt_cvs.cxx (class CvsImplementation): Make use of the
	structure strategy for creating package directory structure.

	* source\\cmt_parser.cxx (do_show_strategies): Display the structure strategy

	* source\\cmt_syntax.cxx (class KwdStructureStrategy): Create the
	parsing function for Structure strategies

	* source\\cmt_parser.h (enum CmtStructuringStyle): By default the
	structuring style is initialized with default_structuring_style
	instead of with_version_directory in order to remember whether the
	default has been overridden using EV or command option.

	* source\\cmt_project.cxx (configure): Initialize the VersionDirectory strategy
	(StrategyMgr): Create the VersionDirectory strategy entry.

	* source\\cmt_parser.h (enum): Add a StructureStrategy to define with/out version directory.

2005-09-05  Christian Arnault  <arnault@lal.in2p3.fr> 277

	* mgr/cmt_buildcvsinfos2.sh (module): Adapt to the new syntax by adding the protocol level.

	* source/cmt_include.cxx (action): Submit include_dirs statement to private scoping

2005-09-01  Christian Arnault  <arnault@lal.in2p3.fr> 276

	* source/cmt_use.cxx (get_strategy): Implement the get_strategy function

	* source/cmt_use.h (class Use): Install the get_strategy function as a member function.

	* source/cmt_symbol.cxx (all_set): Generate all XXXROOT and XXXCONFIG evs according
	to the strategies.

	* source/cmt_parser.cxx (get_strategy): Make the use argument of the function a required argument
	ie suppress the default arg to Use::current ()
	Prepare to migrate this function as a member function of Use

2005-08-31  Christian Arnault  <arnault@lal.in2p3.fr> 275

	* source/cmt.h (class Cmt): Making the get_strategy function a member function 
	rather than a private local one

	* mgr/fragments/constituent (uninstall): Protect against missing un/install targets
	* mgr/fragments/nmake/constituent (uninstall): Protect against missing un/install targets

	* mgr/fragments/cmt_action_runner_header: Add install and uninstall dummy target
	* mgr/fragments/nmake/cmt_action_runner_header: Add install and uninstall dummy target

	* mgr/cmt_uninstall_action.bat: [Fix] typo

	* source/cmt_project.cxx (create_project): When create a parent-less project, link it to 
	previous top project(s) and upgrade strategies
	(class VisitorForFillCMTPATH): [Fix] Should not add the path separator

	* source/cmt_project.h (class Project): Add a function to ask if a project has parents

	* source/cmt_include.cxx (parse): When expanding include, the use must be trasmitted to new includes

2005-08-30  Christian Arnault  <arnault@lal.in2p3.fr> 275

	* source/cmt_parser.cxx (class StandardMacroBuilder): Parse all includes for Current use

	* source/cmt_include.cxx: Do the parse_all operation in the context of one Use.

	* source/cmt_include.h (class Include): Do the parse_all operation in the context of one Use.

	* source/cmt_project.cxx (create): Return a boolean status to show success of the creation

	* source/cmt_project.h (class Project): create function returns a boolean that
	describes if the creation was successful. In case of success the current directory
	is in the cmt directory of the project. 

	* source/cmt_system.cxx (scan_dir): Fix a bug

	* source/cmt_deps_builder.cxx (build_deps_text): Fix state change when in single line comment

2005-08-19  Christian Arnault  <arnault@lal.in2p3.fr> 274

	* source/cmt_use.cxx (fill_includes_macro): skip include_dirs entries with empty name

	* source/cmt_project.cxx (show_all): Use the top project when current is not defined
	(start_visit): idem
	(class VisitorForFillCMTPATH): Initialize CMTPATH to empty when filling in CMTPATH for all projects

	* source/cmt_cvs.cxx (class CvsImplementation): Add the get_module function to compute the CVS module
	from the requested package/offset
	(class CvsImplementation): Add a check_structure to verify various structures before doing the checkout
	(class CvsImplementation): Ask for the checkout when the directory structure is in place but 
	when the CMT structure is NOT in place. Useful for mounting disks before the checkout.

	* source/cmt_parser.cxx (class StandardMacroBuilder): Apply the post-processing of include_dirs statements.
	(get_strategy): Get the top project to compute a strategy when the current project is not defined
	in order to avoid losing all strategies for standalone packages.

	* source/cmt_include.h (class Include): Suppress print_all and print_filters obsolete functions
	* source/cmt_include.cxx: Suppress print_all and print_filters obsolete functions
	(parse): Add a post-processing step to expand include_dirs statements at set_standard_macros stage

	* source/cmt_deps_builder.cxx (build_deps_text): Fix and Change the way source files are parsed 
	for computing dependencies. Fill a cmt_string at once and traverse the string without any additional 
	copy.

2005-07-21  Christian Arnault  <arnault@lal.in2p3.fr> 274

	* source/cmt_symbol.cxx (build): Clean up unneeded path separators

2005-07-19  Christian Arnault  <arnault@lal.in2p3.fr> 274

	* source/cmt_symbol.cxx (build): Suppress old test in CommandPathRemoveRegexp

2005-05-09  Christian Arnault  <arnault@lal.in2p3.fr> 273

	* source/cmt_use.cxx (fill_standard_macros): Fix a bug in setting
	the project macros (missing CR)

2005-05-02  Christian Arnault  <arnault@lal.in2p3.fr> 272

	* source/cmt_version.h: Prepare v1r18p20050501

	* source/cmt_cvs.cxx: Adding CMTPATH internal management
	Improve broadcast operation after recursive checkouts

2005-05-01  Christian Arnault  <arnault@lal.in2p3.fr> 272

	* mgr/Makefile (pacman): Create the pacman file for that version.

	* mgr/CMT.pacman: Migrate to Pacman3

	* source/cmt_cvs.cxx: Supporting project checkout
	recursive project checkouts
	without_version_directory mode
	container statements in project files.
	alias version directory
	Various cleanup and restructuring operations

	* mgr/requirements: Adapt for shared libs on CYGWIN (thanks to Guy Barrand)

	* src/setup.zsh: Add cmt subprojects command

	* src/setup.tcsh: Add cmt subprojects command

2005-04-26  Christian Arnault  <arnault@lal.in2p3.fr> 271

	* source/cmt_cvs.cxx: Add recursive passes for cvs co -R on projects (not completed)
	Add support/checking of protocol level against CVS pluggin
	Detection of non-installation of the CVS pluggin

	* mgr/requirements: Add a macro cmt_cvs_protocol_level to specify
	the expected protocol level with the CVS pluggin

2005-04-25    <arnault@lal.in2p3.fr> 270

	* source/cmt_cvs.cxx (class CvsImplementation): Accept empty
	argument for queries on subprojects

	* source/cmt_cvs.cxx (class CvsImplementation): Accept empty
	argument for queries on subpackages

	* source/cmt_cvs.cxx (class CvsImplementation): Selection for
	getting the mudule contents is done using the structure
	information.

	* source/cmt_cvs.cxx (class CvsImplementation): Isolate specific
	behaviour into dedicated functions for getting the specific
	contents for packages or for projects.

	* source/cmt_cvs.cxx (class CvsImplementation): Retrieve fields
	for structure and subprojects from the CVS pluggin.

	* source/cmt_cvs.cxx (class CvsImplementation): Manage the
	protocol level related with the version of the CVS pluggin.

	* source/cmt_cvs.cxx (class CvsImplementation): Suppress all dots
	from the tmpdir due to problems on Windows

	* source/cmt_cvs.cxx (class CvsImplementation): Add support for
	struture_info and subprojects coming from the new CVS pluggin

	* source/cmt_parser.cxx (do_cvssubprojects): Handle the
	cvssubprojects command
	(parser): Commands related with CVS should at least read the
	requirements file of CMT

	* source/cmt_parser.h (enum): Add cvssubprojects action

	* source/cmt_commands.cxx (CommandHelp): Add help for
	cvssubprojects command

	* source/cmt_commands.cxx (do_cvssubprojects): Accept empty
	argument to query for subprojects at top of the repository

	* source/cmt_commands.cxx (do_cvssubpackages): Accept empty
	argument to query for subpackages at top of the repository

	* source/cmt_commands.cxx (ArgParser): Manage cvssubprojects command.

	* source/cmt_commands.h (class ArgParser): Add cvssubprojects command

	* source/cmt_use.cxx (fill_standard_macros): Production of a new
	standard macro for obtaining the project releases

	* source/cmt_cvs.h (class Cvs): Add the subprojects function to
	query CVS about the existing subprojects of a given module.

2005-04-23  Christian Arnault  <arnault@lal.in2p3.fr> 269

	* source/cmt_project.h (class Project): container and
	container_version access methods

	* source/cmt_project.cxx (container_action): Implementation of the
	container statement

	* source/cmt_project.h (class Project): Add handling of the container statement

	* source/cmt_syntax.cxx (class KwdContainer): Add support of the
	project container package
	(SyntaxParser): idem

2005-04-21  Christian Arnault  <arnault@lal.in2p3.fr> 268

	* source/cmt_project.cxx (create_project): Check pwd for finding
	projects.

	* source/cmt_symbol.cxx (find_path_entry): Look for existing PATH
	entries by comparing the real path rather than the logical
	path. Use pwd everywhere (or CmtSystem::compress_path when the
	path is not exactly found)
	

2005-04-14  Christian Arnault  <arnault@lal.in2p3.fr> 267

	* source/cmt_system.cxx (class CMTPathManager): CMTUSERCONTEXT and
	CMTHOME environments give a specific name to the associated
	project.

	* source/cmt_project.cxx (create_project): Fixing the project
	naming scheme. Project name specified in the project files take
	precedence over the names found in the path.

2005-04-13  Christian Arnault  <arnault@lal.in2p3.fr> 266

	* source/cmt_commands.cxx (do_cvstags, do_cvssubpackages): Fix arg counting.

2005-04-12  Christian Arnault  <arnault@lal.in2p3.fr> 265

	* source/cmt_project.cxx (create_project): Restructure the
	algorithm for detection of project structuring cases. Construct a
	finite list of cases.
	(has_parent): Implement recursive query function
	(has_child): Implement recursive query function
	(add_parent, add_child): Use the recursive detection to avoid cycles.

	* source/cmt_project.h (class Project): Add has_parent and
	has_child functions to protect against recursive cycles

2005-04-02  Christian Arnault  <arnault@lal.in2p3.fr> 264

        * source/cmt_version.h (CMTVERSION): Prepare for v1r18p20050401

	* mgr/requirements: use ln -fs for cmt_installarea_command

2005-03-31  Christian Arnault  <arnault@lal.in2p3.fr> 263

	* doc/ReleaseNotes: prepare release notes
	
	* source/cmt_project.cxx (create_project): Fix settings of the project name.

2005-03-30  Christian Arnault  <arnault@lal.in2p3.fr> 262

	* mgr/NMake (demo): Adapt to the new syntax of cmt create_project

	* source/cmt_project.cxx (create_project): Suppress several warnings

2005-03-30  Christian Arnault  <arnault@lal.in2p3.fr> 261

	* doc/table.html: Install link to the Trac bug reporting system.  

2005-03-30  Christian Arnault  <arnault@lal.in2p3.fr> 261

	* source/cmt_project.cxx (create): The create function now creates
	the complete directory hierarchy for the project including the
	release level(s). Can accept a path.
	(create_project): Don't assume a release level.

	* source/cmt_project.h (class Project): The create function now
	accepts a release and a path argument

	* source/cmt_commands.cxx (show): Suppress debug printouts
	* source/cmt_parser.cxx (do_help): Suppress debug printouts

	* source/cmt_system.cxx (is_version_directory): Accept HEAD/head as a valid version directory.

2005-03-30  Christian Arnault  <arnault@lal.in2p3.fr> 260

	* doc/CMTDoc.xml: work on the doc (unfinished)

	* source/cmt_project.cxx (use_action): The name specification of a
	project use statement is used to create the project.
 
	* source/cmt_project.cxx (create_project): Implement the algo to
	construct or discover the real project name and release from the
	context. The new algo supports release specifications as a
	multi-level directory definition.

	* source/cmt_project.cxx (get_release_from_path): Function to
	retreive the release sub-string from a path, given the project
	name.

	* source/cmt_project.h (class ProjectFactory): Add the project
	name as first argument to the create_project function.

	* source/cmt_system.cxx (class CMTPathManager): when specified
	from a CMTPATH item, the project creation has to guess the project
	name.

	* mgr/Makefile (gendoc): Suppress the | output modifier

2005-03-16  Christian Arnault  <arnault@lal.in2p3.fr> 259

	* mgr/fragments/dependencies: We need to reconsider all sources to
	recompute all dependencies that may have changed due to
	configuration changes. Thus the -all_sources is added

2005-03-15  Christian Arnault  <arnault@lal.in2p3.fr> 258

	* source/cmt_parser.cxx (clear): Add m_autoconfigure_cmtpath
	variable to discard autoconfiguration of CMTPATH during initial
	phases of the configuration.
	
	(guess_current_project): Once the current project is known, the
	CMTPATH is re-generated from the effective knowledge of the
	project graph.

	(do_setup): Add a check of the configuration when doing cmt setup

	(do_check_configuration): analyze the tags coming from arguments
	or from CMTSITE to detect mistypings. This is done by checking the
	effective usage of those tags.

	(configure_cmt_path): Analyze CMTPATH from either the symbol value
	or from the EV, before asking the project factory to create the
	projects from it.

	(get_strategy): Add a generic local function to query the strategy elements.

	* source/cmt_project.cxx (add): Manage conflicts between project
	release requests on a strict basis (no wild card - exact match
	only)

	* source/cmt_project.h (class ProjectFactory): No longer need m_first and m_previous

	* source/cmt_project.cxx (create_project): Implement a graph of projects.
	(create_project): Interpret the first top level directory as the project release
	
	(create_project): Interpret the second top level directory as the
	project name when it's not defined in the project file. So we
	don't create a dummy project name anymore Project<n>.

	* source/cmt_commands.cxx (ArgParser): Suppress obsolete +path option
	(parse): Initialize the m_action value to none to fix a bad management of unknown commands
	(do_filter): Implement the cmt filter command

	* source/cmt_error.cxx (class Error): Add unknown_command and
	project_release_conflict errors

	* source/cmt_syntax.cxx (class KwdBuildStrategy): Apply the
	restructuration of strategy management to strategy decoding

	(class KwdSetupStrategy): idem
	(class KwdUse): Support the use statement for project files
	(SyntaxParser): Support the use statement for project files

	* source/cmt_project.h (class StrategyDef): Create a class to hold
	the definition of all strategy elements	
	(class Strategy): Create a class to hold the application of a strategy into a project
	(class StrategyMgr): Create a singleton to manage the strategy definitions
	(class ProjectFactory): Add parent argument to create_project to handle the project graph
	(class IProjectVisitor): Create a class to visit the project graph
	(class Project): Transport all definitions related with strategies into Strategy objects

	* source/cmt_system.cxx (class CMTPathManager): Add a class to
	interact with the ProjectFactory to convert CMTPATH specifications
	into projects

	(get_cmt_paths): Suppress the setting from $CMTPATH. This is
	replaced by a selective understanding of the source of CMTPATH
	either from the symbol (when defined in a requirements file) or
	from the EV. This selection is performed in
	Cmt::configure_cmt_path.

	(get_cmt_paths): Suppress the definition of a CMTPATH entry for CMT itself

2005-03-10    <arnault@lal.in2p3.fr> 257

	* mgr/NMake (demo): Add project file to the demo context.

2005-03-04  Christian Arnault  <arnault@lal.in2p3.fr> 256

	* source/cmt_project.cxx: Ongoing work for redefining Project graphs. 

2005-03-03  Christian Arnault  <arnault@lal.in2p3.fr> 255

	* source/cmt_project.cxx (add): Manage project release conflicts.

	* source/cmt_error.h (class CmtError): Add project_release_conflict error
	* source/cmt_error.cxx (class Error): Add project_release_conflict error

	* source/cmt_project.h (class Project): Introduce the management
	of release information in projects

	* source/cmt_parser.cxx (do_check_configuration): Finally suppress the checking of CMTCONFIG 
	(do_setup): Add do_check_configuration to check some tag settings.

2005-03-02  Christian Arnault  <arnault@lal.in2p3.fr> 254

	* source/cmt_symbol.h (class Symbol): Add an optional argument to build_macro_value to switch display mode

	* source/cmt_symbol.cxx (show_macro): Improve the display mode so as to display only once the macro construction steps

	* source/cmt_parser.cxx (guess_current_project): Regenerate CMTPATH from the effective set of subprojects.

	* source/cmt_commands.cxx (parse): Handle unexpected arguments

	* source/cmt_error.cxx (class Error): Added unknown_command error
	* source/cmt_error.h (class CmtError): Added unknown_command error

	* source/cmt_commands.cxx (do_filter): Missing implementation for the filter command

2005-03-01  Christian Arnault  <arnault@lal.in2p3.fr> 254

	* source/cmt_tag.cxx (use_operand): Add way of checking internal structure of a tag
	* source/cmt_tag.cxx (use_ref): Add way of checking internal structure of a tag
	* source/cmt_tag.h (class Tag): Add way of checking internal structure of a tag
	* source/cmt_symbol.h (class Symbol): Add way of checking if a tag is used by symbols.
	* source/cmt_symbol.cxx (print): Suppress the "export" action after defining an alias in Sh mode
	* source/cmt_project.cxx: Introduce use_action 
	* source/cmt_syntax.cxx (SyntaxParser): Add support to use statements in project files
	* source/cmt_project.cxx (create_project): Add comments

2005-02-14  Christian Arnault  <arnault@lal.in2p3.fr> 253

	* src/Makefile.header (common_target): mktemp refuses to create
	subdirectory when TMPDIR specifies something different than /tmp
	that does not exist yet.

2005-02-07  Christian Arnault  <arnault@lal.in2p3.fr> 252

	* source/cmt_system.cxx (scan_dir): Fix a bug that killed the cmt
	show packages command in some cases

2005-02-03    <arnault@lal.in2p3.fr> 251

	* source/cmt_commands.cxx (do_cvstags): fix arg counting
	* source/cmt_commands.cxx (do_cvssubpackages): fix arg counting

2004-12-14    <arnault@lal.in2p3.fr> 250

	* source/cmt_parser.cxx (class StandardMacroBuilder): Fix a bug
	that caused a premature exit from the scan of constituents.

2004-12-13    <arnault@lal.in2p3.fr> 249

	* source/cmt_constituent.cxx (parse): Add a specific behaviour for
	documents generated for actions so as to keep the action_value
	definition unparsed.

2004-12-03 <arnault@lal.in2p3.fr> 248

	* mgr/fragments/nmake/library: apply patches from Pere about installing pdb files for Debug mode

2004-12-01    <arnault@lal.in2p3.fr> 247

	* source/cmt_version.h (CMTVERSION): Prepare for tagging v1r18p20041201

	* source/cmt.h (class Cmt): Fix typo

2004-12-01  Christian Arnault  <arnault@lal.in2p3.fr> 246

	* mgr/cmt_uninstall_action.sh: Better management of directory removal

2004-12-01  Christian Arnault  <arnault@lal.in2p3.fr> 246

	* mgr/fragments/application (install): 
	* mgr/fragments/library (install): 
	* mgr/fragments/library_no_share (install): 
	* mgr/fragments/install_includes_header (install): 
	* mgr/fragments/jar (install): 
	* mgr/fragments/java_header (install): Remove the connection
	between uninstall and clean targets. So now when gmake clean is
	run no uinstallation occurs in the installation area.

2004-11-11    <arnault@lal.in2p3.fr> 245

	* source/cmt_parser.h: 
	* source/cmt_project.cxx: 
	* source/cmt_project.h: 
	* source/cmt_syntax.cxx: 
	* source/cmt_parser.cxx: 
	* doc/CMTDoc.xml: Suppress obsolete (and useless) makefile strategy

	* source/cmt_parser.cxx (print_context): the setup strategy is
	really used to generate the ROOT and CONFIG env. vars.

	* source/cmt_parser.cxx (get_setup_strategy): Get the setup
	strategy for each use so as to really build ROOT or CONFIG
	according to the real project of the use

2004-11-09    <arnault@lal.in2p3.fr> 244

	* source/cmt_version.h: Preparing version tag for v1r18
	
	* mgr/requirements:
	* source/cmt_parser.h:
	* source/cmt_projects.cxx: Change default build strategy to without_installarea

2004-11-08    <arnault@lal.in2p3.fr> 243

	* mgr/Makefile (docs): Do some cleanup

	* source/cmt_parser.cxx (do_build_library_links): make use of the
	new library_install_command macro

	* mgr/requirements: Create a new macro library_install_command for
	defining how to actually install libraries through the
	<package>_libraries macro.

2004-11-02  Christian Arnault  <arnault@lal.in2p3.fr> 242

	* source/cmt_commands.cxx (option_tag): When resetting tags one
	need to also call again guess_current_project
	
	(option_tag): In fact on can simply reset all active tags, and
	regenerate activations rather than clearing all tags.

	* source/cmt_parser.cxx (guess_current_project): Fix a typo

	* source/cmt_tag.cxx (get_default): Make the tag Default a static
	object to avoid killing it.


2004-11-01    <arnault@lal.in2p3.fr> 241

	* source/cmt_parser.cxx (guess_current_project): Implement the
	detection of the current project

	* source/cmt_parser.cxx (configure): Add the detection of the
	current project through a project file above the current directory

2004-10-30  Christian Arnault  <arnault@lal.in2p3.fr> 240

	* source/cmt_parser.cxx (class StandardMacroBuilder): Apply the
	cmtpath_patterns before setting up the installarea parameters so
	as to let the patterns really define the
	<project>_installarea_prefix for instance.
	
	(set_standard_macros): Remove this first setting of installarea
	because it's better done only once.

	* mgr/fragments/constituent: Remove a debug message

	* mgr/requirements: Prepare for new tag v1r18

	* mgr/cmt_uninstall_action.sh: 
	* mgr/cmt_install_action.sh: Late fixes

2004-10-29    <arnault@lal.in2p3.fr> 239

	* source/cmt_parser.cxx (set_standard_macros): Restructure the
	StandardMacroBuilder to provide all steps.  Move upward the
	fill_for_install_area to make all cmtpath_patterns applied before
	manging other macros. This caused the include_dirs installed in a
	cmtpath_pattern useless.

	* source/cmt_list.h (class cmt_list): few fixes for CYGWIN

	* mgr/requirements: CYGWIN tag implies Linux

	* mgr/fragments/install_includes_header (uninstall): 
	* mgr/fragments/java_header (install): 
	* mgr/fragments/jar (install): 
	* mgr/fragments/library_no_share (install): 
	* mgr/fragments/library (install): 
	* mgr/fragments/application (install): 
	* mgr/cmt_install_action.sh: 
	* mgr/cmt_uninstall_action.sh: Improve the argument passing scheme
	to make it more flexible. Add an argument to get cmtpath, to check
	it against pwd. However this should never occur since cmt itself
	is supposed to never generate CMTNSTALLAREA when this is not
	appropriate.

	* source/cmt_install_area.cxx (setup_current_installarea): Consider <project>_installarea_prefix

	* source/cmt_system.cxx (compress_path): Fix a bug: when detecting
	the aaa/bbb/../ccc pattern, "bbb" cannot be ".." nor "." nor
	contain a macro reference.

2004-10-25    <arnault@lal.in2p3.fr> 238

	* source/cmt_parser.cxx (do_run): Force the settings of EVs
	before launching the run action

	* source/cmt_parser.cxx (do_broadcast): Force the settings of EVs
	before launching the bro action

	* source/cmt_commands.cxx (do_run): The run command now transmits all arguments

	* source/cmt_list.h: Prepare a list class for future use. This be
	used to handle the constituent order mechanisms.

	* mgr/Makefile: 
	* mgr/NMake (post_build): Add a post_build step to re-generate the
	cmt_dependencies.[n]make file (one version in mgr without the
	stamps and one version in $(bin) with them)
	
	* source/cmt_generators.h (class DependencyGenerator): 
	* source/cmt_generators.cxx (build): Add an option -no_stamps to
	buid dependencies so as to generate a version of the dependency
	files without the extra stamps specifications and with no stamp
	file generation. This is need to generate the bootstrap dependency
	file for cmt itself.

	* source/cmt_generators.cxx: 
	* source/cmt_generators.h (class DependencyGenerator): 
	* source/cmt_generator.h (class CmtGenerator): Revisit the construction of dependencies files:
	The dependencies file is split as one file fragment per dependency line (ie per file)
	This dep fragment is installed into $(bin)/<constituent>/*.stamp
	a dep to this stamp file is installed in the dependency line
	the stamps file is only touched when it changes
	All this to ensure that recompilations are done when anythin in th configuration is changed

	* source/cmt_map.h (cmt_vmap): Introduce cmt_vmap to construct
	maps of objects by value

	* source/cmt.h (class Cmt): Restart of set settings can be
	manually triggered. Typically to ensure that they are really set
	just before launching an action

	* mgr/cmt_make_shlib_common.sh (temp_shlib): Suppress the
	automatic construction of bundles on Darwin

	* source/cmt_system.cxx (add_cmt_path): Adding protections of
	validity of CMTPATH entries

	* source/cmt.h:
	* source/cmt_parser.h:
	* source/cmt_parser.cxx:
	* source/cmt_command.h:
	* source/cmt_command.cxx: Introducing classes for command line parsing
	All decoding of the cmt command line arguments are transfered there.
	The decoding is also rationalized.
	actions can be seen as cmt command extensions
	better preparing of EVs before running actions
	prepare the Makefile default file before running actions
	improve the generic management of options
	* cmt.h: Introduction of the CmtContext class to hold global state variables
	for Cmt. The Cmt class now only contains static functions.

	* src/source: Major restructuring of the directories:
	All real sources of cmt now go to ../source
	../src only contains stuff that need to be exported
	../fragments is transfered to mgr/fragments.

	* doc/gendoc.py (Book.book_start): Produce the revision date of the documentation
	Install the real version tag in the doc.

	* doc/CMTDoc.xml: Improving the doc

2004-10-17    <arnault@lal.in2p3.fr> 238

	* mgr/cmt_make_shlib_common.sh: Suppress the systematic creation
	of a bundle in Darwin context

2004-09-28    <arnault@lal.in2p3.fr> 237

	* src/cmt_system.cxx (compress_path): The algorithm must ignore
	the following pattern: xxxx/$(mmm)/../yyyy which cannot be reduced
	to xxxx/yyyy. In fact it nows expands the path when macros are in it

2004-09-27    <arnault@lal.in2p3.fr> 237

	* src/NMakefile.header (check_config): Ensure that configuration
	checking is performed first.

	* src/Makefile.header (check_config): Ensure that configuration
	checking is performed first.

	* src/cmt_use.cxx (need_new): Only display the incompatible case.

	* src/cmt_use.cxx (reach_package): IncompatibleMajorIds is no
	longer considered. Id comparison is no longer rejected in any
	case.

	* src/cmt_use.cxx (compare_versions): Really compare major ids. No
	longer produce IncompatibleMajorIds

	* src/cmt_use.cxx (enum): Add cases to completely analyze the major ids

	* src/cmt_use.cxx (operate): 

	* src/cmt_system.cxx (get_cmt_paths): Suppress the systematic
	addition of $CMTROOT in CMTPATH items!

	* src/cmt_awk.cxx (scan_path): really stop the too deep recursion

2004-09-01    <arnault@lal.in2p3.fr> 236

	* src/cmt_version.h (CMTVERSION): v1r16p20040901

	* doc/ReleaseNotes.html: Prepare next tagging

	* mgr/Makefile: Adapt for the new CMTBIN convention

	* src/cmt_model.cxx (filter): Substitute <cmt:null/> only just
	before printing for empty vector elements

2004-08-31    <arnault@lal.in2p3.fr> 235

	* doc/CMTDoc.xml: Improve the doc.

	* src/cmt_model.cxx (strict_expand): Support parameter values enclosed in simple quotes 
	Only display endl at the very end or recursion.

	* src/cmt_project.cxx (configure): Fix typo in tag excludes

2004-08-30  Christian Arnault  <arnault@lal.in2p3.fr> 234

	* mgr/requirements: Keep 3 digits for the compiler version
	* mgr/Makefile: augment support for SLC3 machines
	* mgr/cmt_linux_version.sh: idem

2004-08-30    <arnault@lal.in2p3.fr> 233

	* doc/CMTDoc.xml: 
	* doc/table.html: Install the reference to CeCILL licences
	* doc/download.html: 
	* doc/intro.html: 
	* doc/copyright.html: 

	* fragments/dependencies: Trigger the reconstruction of dependency
	file when the setup changes.

	* fragments/constituents_header (first): Do not ovverride
	<package>_setup.make when identical. This permits its use as a
	real stamp file to trigger reconstruction of dependency files.

	* mgr/Makefile (cpp): Take into account the new convention for
	CMTBIN (suffixed with `uname -m`)

	* mgr/cmt_system.sh: improve the default value of CMTCONFIG on Cygwin

	* mgr/requirements: Improve the cleaning and setting of PATH
	vaiables WRT installation area strategy

	* src/cmt_parser.cxx (dos_script_prefix): Standalone packages
	don't need ..\\.. in the -path option of DOS setup scripts

	* src/setup.sh (CMTBIN): Suffix CMTBIN with `uname -m` on Unix machines
	* src/setup.csh: idem

2004-08-26    <arnault@lal.in2p3.fr> 232

	* src/setup.bat: Suppress the rem--- lines
	* src/demo/demoA/init.bat: Suppress the rem--- lines
	* src/demo/demoB/init.bat: Suppress the rem--- lines

2004-08-25  Christian Arnault  <arnault@lal.in2p3.fr> 231

	* src/setup.tcsh: Fix typo

	* src/cmt_license.sh: Add template file to include in a various sources (commented by hash signs)
	* src/cmt_license.h: Add template file to include in a C++ source

	* src/cmt_parser.cxx (do_expand_model): Add a -test internal
	option to the expand model command to test regular expressions.

	* src/cmt_regexp.cxx (match): a or_node matches the longest
	 matching alternate patterns, instead of the first one.

	* src/cmt_system.cxx (split): Detect \\" and \\' patterns and ignore
	them as word separators. So a text containing "a b c" d e \\"x\\" will result in 4 fields
	a b c
	d
	e
	\\"x\\"

	* src/cmt_model.cxx (strict_expand): Implement the strict model
	expansion. The new syntax for definning model is:

	<cmts:name att="value" ... />         for a single expansion
	<cmtv:name att="v1 v2 v3 ..." ... />  for a multiple expansion

	The element <cmt:null/> may be used in a vector value to specify an empty value.

	name is the name of a declared make_fragment as usual.
	

2004-08-23  Christian Arnault  <arnault@lal.in2p3.fr> 230

	* src/cmt_regexp.h (class cmt_regexp): Adding comparison operator
	and extraction operator to regexp::iterator

	* src/cmt_parser.cxx (do_expand_model): Parse the -strict option

	* src/cmt_model.h (class CmtModel): Start designing the support
	for stricter model expansion (to support model files in XML)

	* src/cmt_license.txt: First introduction of the license text (obtained from CeCILL)

	* src/Makefile.header (all): Evaluate the result of the cmt check
	configuration and stop Make if it terminates in error.

	* src/cmt_generators.cxx (analyze_file): Evaluate if the file
	exists. Only generate its SourceFile if it exists or can be built
	(build): Accumulate the file names only if they can be built.

	* src/cmt_generators.h (class DocumentGenerator): Make
	analyze_file return if the file is not found.
	(class LibraryGenerator): idem

	* src/cmt_parser.cxx (parser): Make the configure_error a fatal error.

	* src/Makefile.header (common_target): Improve the tmpdir mechanisms. Support ${TMPDIR}

	* src/cmt_parser.cxx (dos_script_prefix): Suppress the -quiet
	option in the setup scripts now that errors are sent to stderr
	instead of stdout.

	* src/cmt_constituent.cxx (class constituents_action_iterator): Use cerr instead of cout

	* src/cmt_fragment.cxx (copy): Use cerr instead of cout

	* src/cmt_generators.cxx (java_file_action, build, build): Use cerr instead of cout

	* src/cmt_parser.cxx (do_awk): typo
	(do_filter, parse_arguments, parser): Use cerr instead of cout

	* src/cmt_use.cxx (install_library, get_all_clients, operate): Use cerr instead of cout

	* src/cmt_system.cxx (remove_file, remove_directory): Use cerr instead of cout

	* src/cmt_tag.cxx (action_apply): Use cerr instead of cout

	* src/cmt_symbol.cxx (create, build): Use cerr instead of cout

	* src/cmt_pattern.cxx (action): Use cerr instead of cout

	* src/cmt_syntax.cxx: general substitution of cout to cerr

	* src/cmt_error.cxx (get_error_name): format text only
	(print): Use cerr instead of cout

	* src/cmt_lock.cxx (check): format text only

2004-08-20  Christian Arnault  <arnault@lal.in2p3.fr> 229

	* mgr/requirements: Protect the cmt_installare_linkopts against
	ambiguous tag settings

	* src/cmt_awk.cxx (scan_path): First compress the path before
	calling the actual recursive scanner
	(scan_path): Completely revisit the scan algorithm to better
	account for directory structures and version.cmt files and package
	statements.

	* src/cmt_project.cxx (create_project): The project file parsing
	must occur after setting the project chain. This caused wrong tag
	propagation across the Project chain.

2004-08-04  Christian Arnault  <arnault@lal.in2p3.fr> 228

	* src/cmt_parser.cxx (do_create): use only compressed paths
	(do_remove): idem

	* src/cmt_use.cxx (get_cmtpath_and_offset): Need to compress the cmtpath to suppress .. patterns

	* src/cmt_system.cxx (compress_path): Compress the pattern /xxx/.. or xxx/.. instead of xxx/../

2004-07-01    <arnault@lal.in2p3.fr> 227

	* src/cmt_version.h: Prepare tagging v1r16p20040701

	* src\\cmt_parser.h: idem

	* src\\cmt.h (class Cmt): Suppress version strategy

	* src\\cmt_parser.cxx (do_show_strategies): Suppress version strategy

2004-06-30    <arnault@lal.in2p3.fr> 226

	* src\\cmt_version.h (CMTVERSION): Prepare tagging v1r16p20040630

	* src/cmt_generator.cxx (class WinDefAwk): Better generation of .def files for DATA

2004-06-24    <arnault@lal.in2p3.fr> 225

	* src/cmt_use.cxx (need_new): fix a bug that impacted on the order of
	compatible use requests with different specifications.

	* src\\cmt_symbol.cxx (build): Add a debug print
	(SymbolValueList::show): only display actions with a non empty value

	* src\\cmt_use.cxx (add): improve the debug statements (no change to algo)

	* mgr\\requirements: Improve the removal operations for Windows in the cmtpath_patterns

2004-06-12    <arnault@lal.in2p3.fr> 225

	* src\\cmt_parser.cxx (need_prototypes): Fix access to prototype mask of build strategy

2004-05-28  Christian Arnault  <arnault@lal.in2p3.fr> 224

	* Tagging v1r16p20040527

	* src/demo/demo1.cmt: Add a test for -target_tag option

	* src/cmt_parser.cxx (do_build_library_links): Transfered the code
	to install a lib symlink into cmt_use.cxx

	* src/cmt_use.cxx (same_dirs): Add a local helper function to
	check if two directory specifications point to the same location
	(install_library): Common local function to really create a
	symlink to a file either into ../$(tag) or into $(CMTINSTALLAREA)/$(tag)/lib
	(build_library_links): Build all the library links for a Use.

	* src/cmt_use.h (class Use): Add a function to build the library links (the code is
	extracted from Cmt::do_build_library_links () )

2004-05-27    <arnault@lal.in2p3.fr> 223

	* src\\cmt_version.h (CMTVERSION): Prepare for real tagging v1r16p20040527
	* doc\\download.html: idem

	* doc\\CMTDoc.xml: Update the doc for the new -target_tag option

	* src\\cmt_constituent.cxx (add_for_action): Actions always have a target tag.

	* src\\demo\\demoA\\requirements: Add a -target_tag option to demoA target to test this feature.

	* fragments\\constituent: Construct or not a local tag makefile according to has_target_tag
	* fragments\\nmake\\constituent: id
	* fragments\\make_header: id
	* fragments\\nmake\\make_header: id

	* src\\cmt_generators.cxx (LibraryGenerator::build): 
	(DocumentGenerator::build): Transmit m_HASTARGETTAG

	* src\\cmt_generator.cxx (reset): Initialize the new m_HASTARGETTAG variable.

	* src\\cmt_generator.h (class CmtGenerator): Add a m_HASTARGETTAG
	Variable to propagate the target_tag ability of the constituents

	* src\\cmt_constituent.cxx (show): Display the -target_tag option
	(class constituents_action_iterator): Parse the -target_tag option

	* src\\cmt_constituent.h (class Constituent): Add support for the
	new -target_tag option, to control the per-constituent generation
	of the target tag. So add a field has_target_tag
	

2004-05-25  Christian Arnault  <arnault@lal.in2p3.fr> 222

	* mgr/requirements: Use $(tag) instead of ${CMTCONFIG} in all cmtpath_pattern s

	* src/NMakefile.header (tags): idem
	* src/Makefile.header (tags): idem
	* fragments/nmake/make_header: idem
	* fragments/nmake/constituents_header (tags): idem
	* fragments/make_header (tags): idem
	* fragments/constituents_header (tags): prefix the tags macro with $(tag)

2004-05-25    <arnault@lal.in2p3.fr> 221

	* src\\cmt_version.h (CMTVERSION): Prepare for tagging v1r16p20040525

	* mgr\\NMake (gendoc): Add a new target to generate html from xml

2004-05-25    <arnault@lal.in2p3.fr> 220

	* mgr\\NMake (cmttag): Convert VisualC.nmake into VisualC_cmt.nmake
	* fragments\\nmake\\constituent: Generate tag file for the target

2004-05-18    <arnault@lal.in2p3.fr> 219

	* mgr\\requirements: Add cmt_log.cxx in the source list

	* src\\cmt_tag.cxx (add): First replacements of debug messages using log
	* src\\cmt_parser.cxx (configure_tags): idem

2004-05-18    <arnault@lal.in2p3.fr> 219

	* src\\cmt_log.h (class CmtLog): Introducing a centralized log message facility
	* src\\cmt_log.cxx: first implementation

2004-05-18  Christian Arnault  <arnault@lal.in2p3.fr> 218

	* fragments/nmake/make_header (tags): idem

	* fragments/nmake/constituent: Update to generate the target_XXX tag

	* src/cmt_parser.cxx (parse_arguments): Activate the tag target_<action> when "cmt do <action>" is run

	* fragments/constituent: Generate the target_${CONSTITUENT} tag

2004-05-17  Christian Arnault  <arnault@lal.in2p3.fr> 218

	* fragments/constituent: Propagate cmt_lock_pid for temporary files
	Generate a tag makefile specific to the constituent

	* fragments/constituents_header (first): Improve the printout for CMTCONFIG

	* fragments/make_header (tags): Generate the target_${CONSTITUENT} tag

	* mgr/requirements: Don't generate the tags macro from CMT. Only do it from the Makefile fragments.

	* src/cmt_generators.cxx (build): Add PACKAGE variable to individual constituent fragment

2004-05-13  Christian Arnault  <arnault@lal.in2p3.fr> 217

	* fragments/constituent: idem

	* fragments/constituents_header (cmt_final_setup): Implement a READONLY mode that generates all intermediate files in /tmp/CMT_*

	* src/Makefile.header (tags): Implement a READONLY mode that generates all intermediate files in /tmp/CMT_*
	(common_target): Make use of the new -out=file option of the cmt build constituents_makefile command

	* src/cmt_generator.cxx (build_constituents_makefile): idem

	* src/cmt_generator.h (class Generator): Add the argument list to the build_constituents_makefile function

	* src/cmt_generators.cxx (build): idem

	* src/cmt_generators.h (class ConstituentsMakefileGenerator): Add the argument list to the build function

	* src/cmt_parser.cxx (configure): Chain configure_home, configure_user_context and configure_cmtpat
	(do_build_constituents_makefile): Propagate arguments to the Generator::build_constituents_makefile method
	(parse_arguments): Accumulate extra-arguments for build constituents_makefile command
	(parse_arguments): Restore the home,user_context and cmtpath configurations for the -tag=xxx option

	* src/cmt_project.cxx (set_build_strategy): Get tags from their names rather than from their pointer to fix a pointer bug
	(set_setup_strategy): idem

	* src/cmt_tag.cxx (action_apply): Adding several debug printouts

2004-05-10    <arnault@lal.in2p3.fr> 216

	* doc\\CMTDoc.xml: Add a section on package semantics

2004-05-07  Christian Arnault  <arnault@lal.in2p3.fr> 215

	* mgr/requirements: Improve support for CEL
	Upgrade system_version_query_command for Darwin

2004-05-06  Christian Arnault  <arnault@lal.in2p3.fr> 215

	* src/cmt_tag.cxx (action_apply): apply_tag now supports the tag
	name given through a symbol expression

	* mgr/cmt_linux_version.sh: Support for Entreprise Linux

	* mgr/requirements: Create automatic tags from cmt_hardware
	cmt_system_version and cmt_compiler_version.
	Set the macro shlibsuffix for Win32

	* mgr/cmt_filter3_version.sh: Add a filtering procedure to keep 3 digits in the compiler version

2004-05-05  Christian Arnault  <arnault@lal.in2p3.fr> 214

	* src/cmt_syntax.cxx (parse_requirements): Close all scope sections once the requirements file is parsed.

	* src/cmt_use.cxx (close_scope_sections): Implement by clearing the vector of scope sections.

	* src/cmt_use.h (class Use): Add close_scope_sections to be called
	at the end of parsing a requirements file.

2004-05-03  Christian Arnault  <arnault@lal.in2p3.fr> 213

	* doc/ReleaseNotes.html: Fix typo

	* src/cmt_system.cxx (is_version_directory): Misunderstands
	version specifications of the form v1r2p (without a trailing
	number)

2004-05-03  Christian Arnault  <arnault@lal.in2p3.fr> 212

	* src/cmt_parser.cxx (configure): Configure home and user_context
	before configuring cmtpaths to associate projects with CMTHOME and
	CMTUSERCONTEXT
	(configure_cmt_path): Reset the project factory before creating all projects
	(configure_user_context): Add a debugging printout

	* src/cmt_system.cxx (get_cmt_paths): Remove the initialization of
	the project factory from there to transfer it to the caller (eg
	cmt_parser::configure_cmt_path)

	* src/cmt_parser.cxx (use_special_requirements): Expects a
	statically defined version "v0" for all special uses.

	(configure_cmt_path): Associate a project with CMTHOME and CMTUSERCONTEXT to manage strategies.

	* src/cmt_use.cxx (show_all): Adapt to new naming convention:
	display the static version explicitly.

	* src/cmt_system.cxx (get_home_package): Convert CMTHOME package
	name from "CMTHOME context" to CMTHOME and manage a version
	through standard mechanisms (version is statically defined as v0)
	(is_home_package): Adpat to new naming convention
	(get_user_context_package): Idem for CMTUSERCONTEXT
	(is_user_context_package): Adapt to new naming convention

2004-04-30  Christian Arnault  <arnault@lal.in2p3.fr> 211

	* mgr/cmt_install_action.sh: Use /bin/pwd instead of raw pwd [Thanks to Traudl]
	* mgr/cmt_uninstall_action.sh: idem
	* mgr/cmt_make_shlib.sh: idem
	* mgr/cmt_make_shlib_common.sh: idem
	* fragments/install_includes_header: idem

	* mgr/requirements: Perform path_remove all before path_prepend in
	the cmtpath_pattern. Thus state two separate cmtpath_patterns.

2004-04-02    <arnault@lal.in2p3.fr> 210

	* src\\cmt_project.cxx (scan_paths): Late patch for LynxOS limitation

	* src\\cmt_version.h: Prepare for v1r16

2004-03-29    <arnault@lal.in2p3.fr> 209

	* mgr/Makefile: Set compiler options for CYGWIN

2004-03-27  Christian Arnault  <arnault@lal.in2p3.fr> 208

	* src/cmt_syntax.cxx (class KwdSetupStrategy): Implement setup strategy decoding for projects

2004-03-27  Christian Arnault  <arnault@lal.in2p3.fr> 207

	* src/cmt_system.h (class IProjectFactory): Suppress the configure entry point

	* src/cmt_system.cxx (get_cmt_paths): see below

	* src/cmt_project.h (class ProjectFactory): No longer need to configure from ProjectFactory

	* src/cmt_project.cxx (configure): Fix typo mixing prototypes and no_prototypes tags
	(add): Systematically create tags just after naming the project.

	* src/cmt_project.h (class Project): Only create tags once

	* src/cmt_syntax.h (class SyntaxParser): Introduce the different
	syntax parsing schemes for requirements files and projects files.
	(class SyntaxParser): Rename do_parse_requirements_text and
	do_parse_requirements_text into do_parse_text and do_parse_line.

2004-03-27  Christian Arnault  <arnault@lal.in2p3.fr> 206

	* src/cmt_syntax.cxx (action): Define a default implementation for project actions
	(class KwdBuildStrategy): Define a project action
	(class KwdProject): idem
	(class KwdSetupStrategy): idem

	* src/cmt_syntax.h (class Kwd): Introduce an action for project files (simply virtual)
	(class SyntaxParser): Restructure, cleanup and sort the entry points
	(class SyntaxParser): Introduce a map of project keywords

	* src/cmt_project.cxx (class ProjectReader): Start support for more statements in the project file

	* src/cmt_pattern.cxx (action): Augment the decoding logic to be more fault tolerant 
	(add): Temporarily force the word quoting
	Add various debuggin printouts

	* src/cmt_parser.cxx (parser): Force the Use* argument type

	* src/cmt_cvs.cxx (class CvsImplementation): Install a constructor for setting default values
	(class CvsImplementation): Set default verse mode to false

2004-03-24  Christian Arnault  <arnault@lal.in2p3.fr> 206

	* src/cmt_cvs.cxx (class CvsImplementation): Reset default verbose mode to off.

2004-03-23  Christian Arnault  <arnault@lal.in2p3.fr> 205

	* src/cmt_pattern.cxx (class PatternCache): Introduce a cache for
	the get_paths operation. To save recursive executions.

	* src/cmt_pattern.h (class PatternList): Navigate in pattern list through PatternList

	* src/cmt_vector.h (cmt_vector): Trying to optimize vector by changing the frame size

	* doc/cmt-mode.el (cmt-mode-map): Revert completion key to <Esc>-<tab>

2004-03-22  Christian Arnault  <arnault@lal.in2p3.fr> 205

	* src/cmt_symbol.cxx (resolve_value): Optimize by checking if $%` exist in the text to expand.
	(create): Missing "alias" case

	* src/cmt_parser.cxx (do_show_action): Missing "alias" case
	(do_show_macro): idem

	* src/cmt_project.cxx (clear): Improve the clear function to
	ensure a proper initialization

	* src/cmt_system.cxx (get_home_directory): Use ::getenv rather than CmtSystem::getenv.

2004-03-19  Christian Arnault  <arnault@lal.in2p3.fr> 205

        * doc/emacs.html: doc on the new emacs mode for CMT
	* doc/table.html: include emacs.html

2004-03-19  Christian Arnault  <arnault@lal.in2p3.fr> 204

	* src/cmt_symbol.cxx (all_set): Only set non empty environment variables 

2004-03-22    <arnault@lal.in2p3.fr> 203

	* src\\cmt_parser.cxx (get_build_strategy): Create a local helper
	function to retrieve the build strategy from the current project.
	(get_setup_strategy): Idem for the setup strategy
	(parse_arguments): Add a protection against the killing -tag= with empty argument.
	(reach_current_package): Specify the use object (current use)
	(class StandardMacroBuilder): Isolate the construction of the CMTVERSION macro into a function
	(class StandardMacroBuilder): Setting of basic standard macros
	specific to packages is transfered to Use::fill_standard_macros
	(set_standard_macros): Apply all cmtpath_patterns independently of the build strategy.

	* src\\cmt_symbol.cxx (action): Expand the tag name to permit tag
	expressions containing macros.

	* src\\cmt_syntax.cxx (parse_requirements): Define the standard
	macros before reading the requirements file.

	* src\\cmt_use.cxx (fill_standard_macros): Implement it (move code from cmt_parser.cxx)
	* src\\cmt_use.h (class Use): Add fill_standard_macros function to
	fill in all standard macros for a given use before reading its
	requirements file.

	* mgr\\requirements: Add exclusions between basic tags
	Adapt cmtpath_pattern to new strategy management 

	* fragments\\nmake\\constituents_header (tags): id.
	* fragments\\nmake\\constituent: id.
	* fragments\\constituent: Add -quiet to CMT command.

2004-03-19    <arnault@lal.in2p3.fr> 203

	* src\\cmt_parser.cxx (get_build_strategy): Install a local
	accessor function to get the build strategy either from the
	current project or from m_current_build_strategy.

2004-03-16    <arnault@lal.in2p3.fr> 202

	* src/cmt_parser.cxx (fill_for_branches): Add a protection against empty current project

	* src\\cmt_system.cxx (get_cmt_paths): Make use of the new
	CmtSystem::get_home_directory function

	* src\\cmt_parser.cxx (class CmtMountFilterParser): Create a FAwk
	parser to decode mout_filter files.
	(configure_current_dir): Make use of the CmtMountFilterParser
	class to parse cmt_mount_filter and .cmtrc files.

	* src\\cmt_system.cxx (get_home_directory): Implementation.

	* src\\cmt_system.h (class CmtSystem): Introduced to get ${HOME} in
	a portable way

2004-03-03  Christian Arnault  <arnault@lal.in2p3.fr> 201

	* src/cmt_parser.cxx (print_context): Use the new projet based setup strategy

	* src/cmt_cvs.cxx: suppress some verbose printouts

2004-02-25    <arnault@lal.in2p3.fr> 200

	* src\\cmt_pattern.cxx (action): add use to warning messages

	* doc\\CMTDoc.xml: improvements

	* doc\\gendoc.py (Book.book_start): Set a padding on top of every rule

	* src\\cmt_cmtpath_pattern.h (class CmtPathPattern): No need to duplicate the vector of words.

	* src\\cmt_cmtpath_pattern.cxx (add): Construct the cmt statement as a one line statement

	* src\\cmt_cmtpath_pattern.h (class CmtPathPattern): Add an expansion line in the class

	* src\\cmt_pattern.cxx (add): Construct the cmt statement as a one line statement
	(expand): Create a temporary replacement for full line
	(action): relax the syntax by permitting spaces around the "=" sign. 
	Add checks for the template name to be expected by the pattern.

	* src\\cmt_pattern.h (class Pattern): Add an expansion line in the class

2004-02-19    <arnault@lal.in2p3.fr> 200

	* src\\cmt_project.cxx (configure): Preset the tags of the default strategies 

	* src\\cmt_tag.cxx (show_definition): Suppress the display of the internal Default tag

2004-02-13    <arnault@lal.in2p3.fr> 200

	* src\\cmt_parser.cxx (class StandardMacroBuilder): Fill <package>_project macro
	(class StandardMacroBuilder): Fill <package>_project macro

	* src\\cmt_project.cxx (get_current): No need to cd

2004-02-13  Christian Arnault  <arnault@lal.in2p3.fr> 199

	* src/cmt_symbol.cxx: implement the XxxRemoveRegexp

	* src/cmt_parser.cxx: idem
	* src/cmt_constituent.cxx: idem 
	* src/cmt_symbol.cxx: idem
	* src/cmt_symbol.h (class Symbol): Change the action stored in Symbol into a new enum SymbolType.

	* src/cmt_symbol.cxx: idem
	* src/cmt_syntax.cxx (SyntaxParser): idem
	* src/cmt_parser.h (enum): Introduce regexp-based remove operations for symbols

2004-02-10  Christian Arnault  <arnault@lal.in2p3.fr> 198

	* src/cmt_parser.cxx (actor): Rename PackageCollector into ClientCollector

2004-02-09  Christian Arnault  <arnault@lal.in2p3.fr> 198

	* fragments/installer: add a / everywhere for consistency

	* src/cmt_symbol.cxx (build): Restrict warning on symbol overriding to show macro and show set

2004-02-13    <arnault@lal.in2p3.fr>

	* doc\\CMTDoc.xml: Work on the doc towards v1r16

	* doc\\gendoc.py (Book.plain_char_data): Keep space characters from raw text
	(Book.book_start): Introduce style sheet.

2004-02-06  Christian Arnault  <arnault@lal.in2p3.fr> 197

	* src/cmt_cvs.cxx (class CvsImplementation): use -quiet for all internal cmt commands

	* src/cmt_string.cxx (erase): Replace strcpy by an explicit loop

	* src/cmt_cvs.cxx: Added -n and -v options to support simulation and verbose modes

	* src/cmt_system.cxx (execute): Change the status value. Back to the Unix standard 0 = ok

	* fragments/nmake/library: idem
	* fragments/library: Install the dependency to the ${CONSTITUENT}stamps macro like for application

	* src/cmt_system.cxx (reduce_file_separators): Improve the reduction algorithm

2004-02-05    <arnault@lal.in2p3.fr> 196

	* src\\cmt_parser.cxx: Remove cmtpath database from Cmt class
	Rename FileScanner into PathScanner and transfer it to CmtSystem
	(configure_cmt_path): Use the ProjectFactory to create Projects from CMTPATH
	(do_broadcast): Projects now fill the selections.
	(do_show_clients): Projects used to search clients
	(do_show_packages): idem
	(do_show_path): idem
	(do_show_strategies): Projects reached to get strategies
	(do_show_versions): Projects used to search versions
	(parse_arguments): +path managed by adding a project
	(reach_current_package): Definitively suppress "current package" source of CMTPATH

	* src\\cmt_use.cxx (class UseProjectAction): Intoduce an action
	pattern to iterate into Project database
	(move_to): Use the Project::broadcast mechanism to locate the package.

	* src\\cmt_use.h (class Use): Make UseProjectAction friend of class Use

	* src\\cmt_system.cxx (add_cmt_path): 
	(add_cmt_paths_from_text): 
	(add_cmt_paths): 
	(get_cmt_paths): Use IProjectFactory

	* src\\cmt_system.h (class IProjectFactory): Add abstract interface
	for creating projects form cmtpath entries
	(class CmtSystem): Change the API to using IProjectFactory

	* src\\cmt_project.cxx: Implement project management

	* src\\cmt_syntax.cxx (class KwdBuildStrategy): 
	(class KwdSetupStrategy): Change strategies from new masks and into Projects

	* src\\cmt_parser.h (enum): Change the masks for strategies to
	improve the reliability of exclusive options, and inheritance
	between projects.

	* src\\cmt_cmtpath_pattern.cxx (class CmtPathPatternProjectAction):
	Introduce new actor pattern for broadcasting to project
	database. Used to apply all cmtpath_patterns
	(apply): Expand the <project> parameter
	(expand): idem

	* src\\cmt_cmtpath_pattern.h (class CmtPathPattern): Add project argument to expand

	* src\\cmt_awk.h (class PathScanner): Add the PathScanner class (imported from cmt_parser.cxx)
	* src\\cmt_awk.cxx (PathScanner): 

	* src\\cmt.h (class Cmt): Transfer cmtpath management to Project

	* doc\\CMTDoc.xml: 
	* src\\cmt_syntax.cxx (class KwdBuildStrategy): 
	* src\\cmt_project.h (class Project): 
	* src\\cmt_project.cxx (set_build_strategy): 
	* src\\cmt_parser.cxx (set_standard_macros): Rename X_install_area symbols into X_installarea
	* src\\cmt_install_area.cxx: Rename X_install_area symbols into X_installarea 
	* src\\cmt_install_area.h: Rename X_install_area symbols into X_installarea 

	* mgr\\requirements: Setting Project-oriented settings for installation area patterns.

2004-01-27    <arnault@lal.in2p3.fr> 195

	* fragments\\nmake\\installer: Fixes from Pere.

2004-01-20    <arnault@vmlinux> 194

	* Try on CVStrac ticket #1

	* src/cmt_symbol.cxx (action): Ensure that the constituents macro is always private.

	* src/cmt_parser.cxx (reach_current_package): Fix missing configuration bit.
	Cures the bug of missing <PACKAGE>VERSION when using cmt -use=...

2004-01-17    <arnault@lal.in2p3.frARNAULT@NB-ARNAULT> 193

	* src\\cmt_syntax.cxx (CommandParser): Add helps for create_project command

	* src\\cmt_parser.h (enum): Add action_create_project

	* src\\cmt.h (class Cmt): Add do_create_project function 

2004-01-13    <arnault@vmlinux> 192

	* src/cmt_parser.cxx (dos_script_prefix): Suppress spaces before
	continuation character in DOS format

2004-01-13  Christian Arnault  <arnault@lal.in2p3.fr> 191

	* src/cmt_symbol.cxx (add_value_to_list): Fix for not discarding too much value_lists

2004-01-10    <arnault@vmlinux> 190

	* src/cmt_syntax.cxx (class KwdBuildStrategy): Start getting the
	strategy from project(experimental??)

	* src/cmt_project.cxx (find_by_cmtpath): We also accept paths specified using a substring
	(configure): Configure in reverse order
	(action): Add experimental -index and -select options

	* src/cmt_install_area.cxx (setup_current_install_area): Make CMTINSTALLAREA a macro instead of a set

2004-01-08  Christian Arnault  <arnault@lal.in2p3.fr> 189

	* src/cmt_use.cxx (reach_package): Fix bug in version comparison when working in non-version-directory mode
	* mgr/requirements: use $(CMTCONFIG) instead of $(tag) for setting PATH etc.. in cmtpath_pattern

2003-12-19  Christian Arnault  <arnault@lal.in2p3.fr> 188

	* src/cmt_use.h (class Use): Remove the project relationship between Use and Project

2003-12-18    <arnault@lal.in2p3.fr> 187

	* src\\cmt_constituent.h (class Constituent): 
	* src\\cmt_constituent.cxx (add_for_action): Implement the constituent equivalent to actions
	(parse_all): Generate the constituent equivalents for all macros

	* fragments\\cmt_action_runner: 
	* fragments\\cmt_action_runner_header: 
	* fragments\\nmake\\cmt_action_runner_header: The new generic make fragment for running actions

	* fragments\\nmake\\dependencies: 
	* fragments\\dependencies: Suppress dependency computation when the
	QUICK macro is defined

	* fragments\\nmake\\library: 
	* fragments\\library: 
	* fragments\\application: 
	* fragments\\nmake\\application: Add dependency to requirements to rebuild application

	* src\\cmt_parser.cxx (do_config): Suppress install area cleanup action from cmt config
	(do_setup): idem

2003-12-16    <arnault@lal.in2p3.fr> 187

	* src\\cmt_constituent.cxx (class constituents_action_iterator):
	Added syntax check on -xxx options for constituents

	* src\\cmt_parser.cxx: Implement Action support.
	Added: (to support Actions)
		do_do
		do_show_action
		do_show_action_names
		do_show_action_value
		do_show_actions
	removed: (after introducing Scope Sections)
		get_scope
		set_scope
		m_scope

	* src\\cmt_parser.h (enum): Added 
		CommandAction
		CommandEndPrivate
		CommandEndPublic

		action_show_action_xxx

	* src\\cmt_constituent.cxx (class constituents_action_iterator):
	Added a syntax checking action.

	* src\\cmt_use.cxx:
	* src\\cmt_use.h (class Use): Support Scope Section concept.
	A Use object holds a vector of ScopeSections
	Added functions
		push_scope_section
		pop_scope_section
		get_current_scope
	Changed attributes:
		scope -> initial_scope

	* src\\cmt_syntax.cxx (class KwdAction): New keyword
	(class KwdEndPrivate): new keyword
	(class KwdEndPublic): new keyword
	(class KwdPrivate): Ignore this pattern on current use
	(class KwdPublic): Ignore this pattern on current use
	(CommandParser): Update help texts for new action concepts

	* src\\cmt_symbol.cxx (class ActionBuilder): new Action objects are
	implemented as a new category of symbols. Therefore all mechanisms
	have been extended to support the new concept.

	old scope attribute is replaced by accesses to Scope Sections from
	the Use objects.

	* src\\cmt_symbol.h (class Symbol): Suppress useless scope attribute and valid () function

	* src\\cmt_scope_section.cxx: New Support for Scope Sections

	* src\\cmt_scope_section.h: New Support for Scope Sections

	* src\\cmt_fragment.cxx (action): Switch to using Scope Sections

	* src\\cmt.h (class Cmt): Added: (to support Actions)
		do_do
		do_show_action
		do_show_action_names
		do_show_action_value
		do_show_actions
	removed: (after introducing Scope Sections)
		get_scope
		set_scope
		m_scope

	* mgr\\requirements: Adding support for Scope sections to handle
	private or public sections. Now private and public sections can be
	ended with the new keywords end_private and end_public. Ending
	keywords switch back to the previous scope active before the most
	recent opening keyword.

	Adding cmt_scope_section.cxx to the sources of the cmt application.
	

2003-12-12  Christian Arnault  <arnault@lal.in2p3.fr> 186

	* mgr/cmt_install_action.sh (a): Improve checking of pwd WRT CMTINSTALLAREA
	* mgr/cmt_uninstall_action.sh (a): idem

	* mgr/cmt_mount_filter: Restore definitions

	* src/cmt_syntax.cxx (do_parse): Evolution of the requirements
	file syntax: apply_pattern can be omitted (ie. pattern names are
	understood as extensions to the basic CMT language)

	* src/cmt_pattern.cxx (action): Add error detection when applying the wrong pattern name
	Prepare for the next change of the syntax which accepts pattern names as plain CMT keywords

	* src/cmt_parser.cxx (find_in_cmt_paths): Fix construction of the
	<package>_cmtpath when symlinks exist along pwd

2003-12-08  Christian Arnault  <arnault@lal.in2p3.fr> 186

	* src/cmt_parser.cxx (do_build_library_links): Fix : should make
	use of the library_prefix and suffix.

2003-12-06   Christian Arnault  <arnault@lal.in2p3.fr> 185

	* src\\cmt_syntax.cxx (do_parse): When a keyword is not found,
	expect an implicit pattern application.

	* src\\cmt_pattern.cxx (action): Add a protection against pattern not found
	Support lines starting with pattern-name or with apply_pattern.

2003-11-21  Christian Arnault  <arnault@lal.in2p3.fr> 185

	* mgr/cmt_install_action.bat: Typo

	* mgr/requirements: Typo in macro cmt_uninstalldir_action

2003-11-20  Christian Arnault  <arnault@lal.in2p3.fr> 184

	* src/cmt_version.h (CMTVERSION): Preparing new tag v1r14p20031120

	* src/cmt_syntax.cxx (CommandParser): Help on cmt build CMT_pacman 

	* src/cmt_parser.cxx (parse_arguments): Implement cmt build
	CMT_pacman command to generate the effective pacman manifest file
	for CMT.

	* src/cmt.h (class Cmt): Add Cmt::do_build_CMT_pacman function

	* src/cmt_parser.h (enum): Add cmt build CMT_pacman command

	* src/setup.zsh: Upgrade zsh completion settings

	* src/setup.tcsh: Upgrade tcsh completion settings

	* fragments/group (all_groups): Add a new standard macro
	$(<group>_dependencies) to specify global dependencies for a
	group.

	* fragments/constituents_trailer (binclean): Dont remove *.make* when cleaning.
	Add a message for binclean.

	* src/cmt_use.cxx (add): Improve the warning message for package not found
	(reduce_path): Display the package path using a reusable format (used by show fragments)

2003-11-19  Christian Arnault  <arnault@lal.in2p3.fr> 183

	* src/cmt_constituent.cxx (class constituents_action_iterator): Empty group means no group.

	* src/cmt_parser.cxx (install_library): Factor out the basic
	operation for installing a library
	(do_build_library_links): Make use of the new install_library
	operation. Add special operation for Darwin to install bundles

	* src/cmt_syntax.cxx (class KwdBuildStrategy): Fix cumulative settings of the strategies 
	(class KwdSetupStrategy): idem

	* mgr/cmt_make_shlib_common.sh: Add support to generate bundles for Darwin

2003-11-14  Christian Arnault  <arnault@lal.in2p3.fr> 182

	* src/cmt_install_area.cxx (setup): Continue setup even without current installation area
	(config): Apply all cmtpath_patterns even  without current installation area
	(build_current_install_area): Make use of Cmt::find_in_cmt_paths

	* src/cmt_parser.cxx (configure_current_cmtpath): Make use of the
	new find_in_cmt_paths function
	(do_setup): Always call CmtInstallAreaMgr::setup even if current installation area is empty 
	(find_in_cmt_paths): first implementation
	(get_cmt_path_pwds): first implementation
	(class StandardMacroBuilder::fill_for_use_cmtpath): Make use of the
	new find_in_cmt_paths function

	* src/cmt.h (class Cmt): Adding find_in_cmt_paths to locate a path
	from all specified CMTPATH entries (considering the dual flavours
	of each entry)
	Adding get_cmt_path_pwds to access alternal values of cmtpath entries

2003-11-12  Christian Arnault  <arnault@lal.in2p3.fr> 181

	* fragments/nmake/constituents_trailer (binclean): Fix typo for Windows

2003-11-06  Christian Arnault  <arnault@lal.in2p3.fr> 180

	* mgr/CMT.pacman: Add generic pacman file. 
	All instances of the "<version>" pattern need to be substituted by 
	the effective version of CMT to make it a real pacman file

2003-10-29  Christian Arnault  <arnault@lal.in2p3.fr> 179

	* tagging v1r14p20031027

	* mgr/cmt_build_release.sh (version): Add the rebuilding of Linux
	version at Lyon (without getting the result back)

	* doc/documents.html: Install release notes from the documents page

	* doc/ReleaseNotes.html: Create ReleaseNotes web page (suppress ReleaseNotes.txt)

	* mgr/Makefile (docs): 
	Add installation of ReleaseNotes.html

2003-10-27  Christian Arnault  <arnault@lal.in2p3.fr> 178

	* src/cmt_version.h (CMTVERSION): prepare tagging of v1r14p20031027

	* mgr/requirements: cmt_installarea_prefix must be defined
	externally to the cmtpath_pattern.

2003-10-22  Christian Arnault  <arnault@lal.in2p3.fr> 177

	* src/cmt_version.h (CMTVERSION): prepare tagging of v1r14p20031022

	* mgr/cmt_installdir_excludes.txt: New file containing the list of
	patterns to exclude in installing a directory

	* fragments/nmake/install_includes_header (install): Add support for exclude files

	* mgr/cmt_installdir_action.bat: Add support for exclude files
	* mgr/cmt_uninstalldir_action.bat: Add tests
	* mgr/cmt_uninstall_action.bat: Add tests
	* mgr/cmt_install_action.bat: Add tests

	* src/cmt_parser.cxx (set_standard_macros): First define the
	current installation area before defining all other standard
	symbols (and making the final parsing of constituents)

	* src/cmt_install_area.cxx (setup_current_install_area): Implement
	the definition of the CMTINSTALLAREA symbol	
	(setup): Differentiate the setting of CMTINSTALLAREA symbol from
	applying cmtpath patterns

	* src/cmt_install_area.h (class CmtInstallAreaMgr): Split setup in
	two parts : first define the CMTINSTALLAREA symbol, then apply all
	cmtpath patterns

2003-10-21  Christian Arnault  <arnault@lal.in2p3.fr> 176

	* mgr/cmt_build_release.sh: Start a procedure for remotely building a CMT release

	* mgr/cmt_installdir_action.bat: Added test on existing result.

	* fragments/nmake/install_includes_header (install_dir): Use $() instead of ${}

	* mgr/requirements: Add definition for cmt_installdir_action

	* src/cmt_parser.cxx (class StandardMacroBuilder): Generate
	<package>_cmtpath and <package>_offset macros also for the current
	package

	* src/cmt_system.cxx (remove_directory): Add a # for error messages
	(remove_file): idem

2003-10-14    <arnault@vmlinux> 175

	* src/cmt_version.h (CMTVERSION): Prepare tagging v1r14p20031014

	* src/cmt_use.cxx (compare_versions): Add a function to compare
	two version strings.
	(reach_package): Add the effective version checking for
	no_version_directory style when version.cmt exists.

	* doc/CMTDoc.xml: Suppress version strategy documentation since
	this mechanism is not really maintained.

	* src/cmt_use.cxx (reach_package): Add effective check of version
	even in no_version_directory style

2003-10-13    <arnault@vmlinux> 175

	* fragments/* : Add start and end markers to all make fragments.  

2003-10-09    <arnault@lal.in2p3.fr> 175

	* src\\cmt_parser.cxx (do_broadcast): Suppress the catching of
	return status=2 for last executed command

2003-10-02  Christian Arnault  <arnault@lal.in2p3.fr> 175

        * src/cmt_system.cxx (cd): putenv requires that the string is static !!

2003-10-01    <arnault@vmlinux> 174

	* src/cmt_use.cxx (class use_action_iterator): Force auto_imports
	to On when context is unspecified.

	* src/cmt_use.h (class Use): Add a new set_selected_version
	function for switching from one use to another one, better wrt
	various criteria. When switching, m_index and auto_imports are
	transfered from the unselected to the newly selected.

2003-09-26    <arnault@vmlinux> 173

	* src/cmt_system.cxx (cd): Change the PWD environment variable, in
	case it's not done by the underlying OS

2003-09-24  Christian Arnault  <arnault@lal.in2p3.fr> 172

	* src/cmt_use.cxx (show_cycles): optimizing a bit
	(find_index): idem
	(set_auto_imports_state): idem
	(move): idem
	(reorder): idem
	(unselect_all): idem
	(get_selected_version): idem
	(get_paths): Improve the algorithm to save multiple vector manipulations

	* src/cmt_parser.cxx: Follow all symbol->build_macro_value by
	Symbol::expand to really expand all possible macro
	references. This caused a bug when inline re-confirguring
	CMTUSERCONTEXT (etc.) with a value containing a ref to another
	symbol.

	* mgr/Makefile (cpp): Add -O2 option for Linux platform
	(cpp): Add support for profiling setup for LinuxProf platform

2003-09-18    <arnault@vmlinux>

        * mgr/cmt_uninstall_action.sh (a): Fix the consistency check of pwd vs CMTINSTALLAREA
        * mgr/cmt_install_action.sh (a): idem

2003-09-18  Christian Arnault  <arnault@lal.in2p3.fr> 171

	* mgr/Makefile (cpp): Set IGNORE_PWD for OSF1 and LynxOS

	* src/cmt_system.cxx (pwd): Add an option to ignore PWD since on
	some machines this does not work well with the chdir function.

	* doc/CMTDoc.xml: improvements

2003-09-17  Christian Arnault  <arnault@lal.in2p3.fr> 170

	* src/cmt_parser.cxx (class StandardMacroBuilder): Add the
	production of the new macros <package>_cmtpath <package>_offset
	(class StandardMacroBuilder): Implement the generation of
	<package>_cmtpath <package>_offset macros

	* fragments/constituent: Add the same dependency list onto
	constituent makefile fragment than onto the constituent itself so
	as to enforce the build order also for make fragments.

	* src/cmt_use.cxx (get_paths, get_selected_version): Remove static
	declaration for a local variable (caused a serious bug !!)
	Lots of debug prints improved.

2003-09-16  Christian Arnault  <arnault@lal.in2p3.fr> 170

	* src/cmt_symbol.cxx (action): fix setup_script calling mechanism
	in no_version style : should get it from ../cmt rather than ../mgr

2003-09-16    <arnault@vmlinux> 169

	* mgr/cmt_uninstall_action.sh (full_source_name): idem

	* mgr/cmt_install_action.sh: add a protection when current
	directory is outside any installation area

	
	* mgr/NMake (CMTINSTALLAREA): idem
	(cmttag): Improve the filter for VisualC tag file generation
	(required to remove all location specific info)
	Change the target from cmt to cmttag (ie this is NO LONGER done by default!!)

	* mgr/Makefile (CMTINSTALLAREA): Inhibit all INSTALLAREA mechanism
	when rebuilding cmt itself

	* src/cmt_parser.cxx (get_current_style): First Implementation
	(dos_script_prefix): Use current_style rather than
	current_structuring_style to select path pattern

	* src/cmt.h (class Cmt): Add get function to access m_current_style

2003-09-16  Christian Arnault  <arnault@lal.in2p3.fr> 168

	* src/cmt_use.cxx (find_index): Add a protection when a package
	was not found

2003-08-14  Christian Arnault  <arnault@lal.in2p3.fr> 168

	* src/cmt_generators.cxx (LibraryGenerator::build): new syntax for get_all_files
	(DocumentGenerator::build): idem
	(MSDEVGenerator::build_project): idem
	(VSNETGenerator::build_project): idem
	(DependencyGenerator::build): idem

	* src/cmt_generator.h (class CmtGenerator): Add an argument for
	selection patterns.

	* src/cmt_generator.cxx (get_all_files): Apply the selection
	patterns.  Support wilcarded suffixes (*.*)

	* src/cmt_generators.cxx (DocumentGenerator::build): Add path
	compression when analyzing file names.
	(ConstituentsMakefileGenerator::build): suppress unused declarations

	* src/cmt_constituent.cxx (show): display select paterns
	(class constituents_action_iterator): Handle the new -k= option for selection pattern
	(clear): clear selection patterns

	* src/cmt_constituent.h (class Constituent): Add select regexps similar to excludes

2003-08-13  Christian Arnault  <arnault@lal.in2p3.fr> 168

	* src/cmt_use.cxx (show_all): Standardize the output format of
	show uses to ensure that we always have in the last part: 

	use <package> <version> [<offset>] (<path>) (<qualifier>) (...)

	or (with -quiet)
	
	use <package> <version> [<offset>]

	Also fix a bug when trying to remove offset from real_path...
	

2003-08-11  Christian Arnault  <arnault@lal.in2p3.fr> 167

	* mgr/Makefile (bintar): Dynamically gets the list of binaries
	available of this machine. Then constructs CMTDownload.html
	accordingly.

	* doc/CMTDownload1.html: First part of CMTDownload.html
	* doc/CMTDownload2.html: Last part of  CMTDownload.html

	* doc/installations.doc: upgrade list of porting machines

	* src/cmt_version.h (CMTVERSION): new patch tag v1r14p20030811

	* src/cmt_use.cxx (show_sub_uses): Display the original request
	instead of the registered sub use (which may be different than the
	request)

	* src/cmt_use.h (class Use): Add context_use in the argument list
	to display the use that created this request
	
	(class Use): Add a vector of the real requests (well only those that ended up in a sub use) 

	* src/cmt_use.cxx (need_new): Dispay the incompatibility message
	in need_new rather than in the BestFitSelector, since
	corresponding uses may have been discarded then.

	* src/cmt_system.cxx (is_version_directory): return all -1 values
	when version specification is just '*'

2003-08-08    <arnault@lal.in2p3.fr> 166

	* mgr\\requirements: Tuning pour CYGWIN

2003-08-06  Christian Arnault  <arnault@lal.in2p3.fr> 165

	* src/cmt_symbol.cxx (create): Same reasons (LynxOS) => convert a
	static array of strings into a switch statement (not quite
	elegant). May move back in some future if problem is solved on
	LynxOS.

	* src/cmt_syntax.cxx (CommandParser): Initialze the new help_texts
	by filling in a vector rather that from a static array of
	cmt_string (too bad...)

	* src/cmt_syntax.h (class CommandParser): Need to redefine the
	management of static arrays of objects due to a bug in c++
	compiler on LynxOS... A Workaround is found by transfering static
	arrays into the singleton => m_helps and m_help_texts

2003-08-06    <arnault@lal.in2p3.fr> 164

	* src\\cmt_parser.cxx (dos_script_prefix): Adapt the generation of
	setup.bat scripts so as to account for the new DOS device constructs
	\\\\xxx\\aaa

	* src\\setup.bat: Add /D to the cd command to support CMT on a
	different device

2003-08-05    <arnault@lal.in2p3.fr> 163

	* src/cmt_parser.cxx (dos_script_prefix): remove device from path
	when device takes the conventional form. new form (\\\\xxx\\) is not
	yet handled.

	* src/cmt_install_area.cxx (config): Don't produce output messages in quiet mode

2003-08-05  Christian Arnault  <arnault@lal.in2p3.fr> 163

	* src/cmt_system.cxx (pwd): Make use of the PWD environment
	variable when it is defined to detect current directory in place
	of getcwd (keep gettcwd when PWD is not defined or on WIN32)

	* fragments/install_includes_header (install): Avoid useless
	re-installation of include file area

	* src/cmt_use.cxx (add): When m_index is exchanged between two
	uses, the discarded flag must be upgraded accordingly	
	(class use_action_iterator): Suppress trailing slash characters on
	package offset specifications.

	* src/cmt_parser.cxx (class StandardMacroBuilder): Define
	package_cmtpath instead of just cmtpath as the standard macro, in
	order to avoid conflict with CMTPATH env. var. on Windows.
	(do_broadcast): Define the pattern <package_cmtpath> instead of
	<cmtpath> for broadcast command templates

	* src/cmt_use.cxx (need_new): first consider the already registered use
	(add): Fix a bug in the algorithm for checking registrations of uses.
	(class use_action_iterator): Remove trailing slashes from prefix specifications

2003-06-20  Christian Arnault  <arnault@lal.in2p3.fr> 162

	* src/cmt_version.h: new patch id 20030620

	* mgr/Makefile (gendoc): Add a target to convert XML doc into HTML
	(so far only available at CERN)

	* doc/gendoc.py (Book.plain_char_data): improvements.

	* src/cmt_parser.cxx (do_broadcast): Fix evaluation of <cmtpath>
	<package_offset> in -global mode

2003-06-19    <arnault@lal.in2p3.fr> 161

	* src/cmt_system.cxx (add_cmt_path): Fix cmtpath checking for
	devices on Windows

2003-06-19  Christian Arnault  <arnault@lal.in2p3.fr> 160

	* fragments/nmake/library_no_share: Use the @<< syntax of nmake to
	cope with long list of OBJS
	* fragments/nmake/application: idem
	* fragments/nmake/library: idem

2003-06-18  Christian Arnault  <arnault@lal.in2p3.fr> 159

	* mgr/requirements: Use ln -s for the cmt_install_area_command

	* fragments/application (install_dir): Use $(tag) instead of $(CMTCONFIG)
	* fragments/library (install_dir): Use $(tag) instead of $(CMTCONFIG)
	* fragments/library_no_share (install_dir): Use $(tag) instead of $(CMTCONFIG)
	* fragments/nmake/application (install_dir): Use $(tag) instead of $(CMTCONFIG)
	* fragments/nmake/library (install_dir): Use $(tag) instead of $(CMTCONFIG)
	* fragments/nmake/library_no_share (install_dir): Use $(tag) instead of $(CMTCONFIG)

	* mgr/requirements: use cp -s and not cp -l to create symlinks

2003-06-16  Christian Arnault  <arnault@lal.in2p3.fr> 158

	* src/cmt_version.h (CMTVERSION): New Tag 20030616

	* src/Makefile.header (common_target): Make use of the mktemp
	shell function

	* doc/CMTDoc.xml: Doc

	* src/cmt.h (class Cmt): Add get_current_cmtpath and
	get_current_offset functions.

	* src/cmt_parser.cxx (configure_current_cmtpath): Implement (set
	m_current_cmtpath and m_current_offset)

	* src/cmt.h (class Cmt): Add configure_current_cmtpath function

	* src/cmt_parser.cxx (class StandardMacroBuilder): Add standard
	macros cmtpath and package_offset
	(do_broadcast): Add substitutions of <package>, <version>, <cmtpath>, <package_offset>
	(class StandardMacroBuilder): Set m_current_cmtpath and m_current_offset

	* src/cmt.h (class Cmt): Adding current value for cmtpath and offset

	* mgr/requirements: Use symlink instead of cp as default transfer
	action into installation area

2003-06-12  Christian Arnault  <arnault@lal.in2p3.fr> 157

	* src/cmt_pattern.cxx : fix a bug in ApplyPattern::action: macros 
	should NOT be expanded when parsing the statement. Only the 
	pattern name may be expanded.
	Second fix: when a pattern is re-defined, the Pattern object must be 
	properly reset.

2003-06-04    <arnault@vmlinux> 156

	* src/cmt_version.h (CMTVERSION): Tag the version to v1r14p20030605

	* mgr/build_from_rpm.sh (tempdir): Add a shell script for testing
	the source kit (not complete)

	* mgr/install_from_rpm.sh: Add a shell script for testing the
	generated binary RPM.

	* mgr/Makefile (rpm): Add the rpm target to build RPMs into ../rpm 

	* mgr/CMT.spec: Add an RPM spec file for CMT. Only the binary kit
	has been tested successfully

	* doc/install.html: Document the usage of the CMT RPM

	* src/cmt_parser.cxx (dos_script_prefix): Use %TEMP% instead of
	%HOMEDRIVE%%HOMEPATH% for temporary setup files on Windows

2003-06-04  Christian Arnault  <arnault@lal.in2p3.fr> 155

	* fragments/install_includes_header (install): Fixed wrong test on
	CMTINSTALLAREA

	* src/cmt_syntax.cxx (parse_requirements): Transfer the scoping
	algorithm to parse_requirements_text so that patterns supplying
	private statements will work nicely.
	(parse_requirements_text): see above

2003-05-23  Christian Arnault  <arnault@lal.in2p3.fr> 154

	* src/Makefile.header: removing apparently obsolete MAKEFLAGS
	filtering mechanisms on -j option

	* src/setup.zsh: Add cmt show cycles zsh expansion

	* src/cmt_parser.cxx (parser): Add cmt show cycles parsing and support

	* src/cmt_syntax.cxx (CommandParser): Add show_cycles info

	* src/cmt_parser.h (enum): Add action_show_cycles

	* src/cmt.h (class Cmt): Add cmt show cycles command to display use cycles

2003-05-22  Christian Arnault  <arnault@lal.in2p3.fr> 153

	* src/cmt_std.h: Suppress include ios for new header style

	* src/cmt_parser.cxx (parse_arguments): Install a -private option to
	the show_use_paths action. When -private is present on the command
	line then the private uses are reached.
	(parse_arguments): Make the --private or --public option a global
	option to control on all CMT commands whether we reach or not the
	private uses.

	* src/cmt_use.cxx (class use_action_iterator): Detect the new
	scope filtering mode to actually reach the private uses

	* src/cmt_parser.cxx: Set the scope filtering mode when
	appropriate (cmt_show_uses, cmt_show_use_paths, cmt_broadcast,
	cmt_set_versions, cmt_show_setup)

	* src/cmt.h (class Cmt): Add m_scope_filtering_mode attribute

	* src/cmt_parser.cxx (get_scope_filtering_mode): Implement the new function
	(set_scope_filtering_mode): Implement the new function

	* src/cmt.h (class Cmt): Add set_scope_filtering_mode function
	  (class Cmt): Add get_scope_filtering_mode function

	* src/cmt_parser.h (enum): Add a scope filtering mode to block or
	reach private uses

2003-05-21  Christian Arnault  <arnault@lal.in2p3.fr> 153

	* src/cmt_use.cxx (get_all_clients): Public interface to private
	get_all_clients
	(get_all_clients): Actual recursive implementation for getting all
	paths to a given client

	* src/cmt_use.h (class Use): Implement two new get_all_clients
	functions to acquire all paths to a given client of a package (one
	public with simple interface and one private with temporary
	storage).

	* src/cmt_use.cxx (class use_action_iterator): traverse complete
	use graph for action_show_use_paths

	* src/cmt_std.h: Set new C++ header style on Linux

	* src/setup.zsh: Add cmt show use_paths to auto-expansion definition 

	* src/cmt_syntax.cxx (CommandParser): Add help for cmt show use_paths
	(get_help_texts): idem

	* src/cmt_parser.cxx (do_show_use_paths): implement do_show_use_paths function
	(parse_arguments): parse cmt show use_paths <package>
	(parser): idem

	* src/cmt.h (class Cmt): add do_show_use_paths function

	* src/cmt_parser.h (enum): Start implementing a new feature: cmt
	show use_paths <package> to display all possible paths between the
	current package and the specified package.

2003-05-19    <arnault@lal.in2p3.fr> 152

	* mgr\\cmt_linux_version.sh: add a script for querying linux
	version for various distributions (contribution from Clark McGrew
	<clark.mcgrew@sunysb.edu>)

	* src\\cmt_symbol.cxx (show_macro): re-apply suppress_OS_delimiter
	when generating the tag makefile, but only on WIN32 context.

	* src\\cmt_pattern.cxx (class apply_pattern_action_iterator): Add
	action iterator to expand macros before parsing line.

	* src\\cmt_fragment.cxx (class fragment_action_iterator): Add
	action iterator to expand macros before parsing line.

	* src\\cmt_fragment.cxx (action): Hide make_fragments in private
	sections like macros

	* mgr\\requirements: Introduce the generic Unix tag for all Unix platforms
	
	* src\\cmt_parser.cxx (dos_script_prefix): Factor out the writing
	of DOS setup and cleanup scripts.

	* mgr\\INSTALL.bat: No longer need nmake to generate the setup.bat
	script of CMT, thanks to the %~d0%~p0 mechanism (copy from src is enough).

	* src\\setup.bat: Install a generic mechanism for finding the
	current drive letter (unfortunately this mechanism does not work
	in any possible Unix shell)

	* src\\cmt_parser.cxx (install_setup_scripts): Apply the drive
	letter mechanism to setup scripts

2003-05-17    <arnault@lal.in2p3.fr> 151

	* mgr\\requirements: Typo in the cmtpath_pattern : use_includes 

2003-05-14    <arnault@lal.in2p3.fr> 150

	* src\\cmt_parser.cxx (restore_all_tags): Bug in managing
	-tag=<taglist> argument due to the separator in m_extra_tags :
	force a separator before and after all tags in the list
	(parse_arguments): idem
	(print): idem

2003-05-13    <arnault@lal.in2p3.fr> 149

	* fragments/tex: install correction from Marie Anne

2003-05-12    <arnault@lal.in2p3.fr> 148

	* mgr/cmt_linux_version.sh: Adding a script to retrieve Linux version and distribution 

	* mgr/requirements: Add declaration of install_includes fragments

	* fragments/install_includes_header: Make fragment for installing
	include directory but only for those following the standard
	pattern of ../<package>

	* fragments/install_includes: 
	* fragments/nmake/install_includes_header: 

	* mgr/cmt_installdir_action.bat: Special treatment of directory
	installation
	* mgr/cmt_uninstalldir_action.bat: 

	* fragments/constituents_trailer (remove_library_links): Add a
	remove_library_links target
	* fragments/nmake/constituents_trailer: idem

	* fragments/constituent (uninstall): Suppress dependencies for
	uninstall target
	* fragments/nmake/constituent (uninstall): idem

2003-05-11    <arnault@lal.in2p3.fr> 147

	* mgr\\requirements: Add search libpath to installarea for WIN32

	* fragments\\nmake\\library (install): bug (typo) in target names

	* mgr\\cmt_install_action.bat: use rem comments instead of #
	* mgr\\cmt_uninstall_action.bat: idem

	* mgr\\NMake (cmt): Filter out the include and lib definitions in
	VisualC.nmake for cmt itself.

	* src\\cmt_parser.cxx (scan_path): Suppress unused variable

	* src\\cmt_std.h (OLD_HEADERS): Adopt new header style for WIN32

	* mgr\\requirements: Add compiler option for exception handling in VisualC

2003-05-05  Christian Arnault  <arnault@lal.in2p3.fr> 146

	* src/cmt_use.cxx (add): Set the warning for package not found a real warning.

	* src/cmt_parser.cxx (do_setup): Change the info message to be
	displayed only when appropriate

2003-05-05    <arnault@lal.in2p3.fr> 145

	* src/cmt_version.h: v1r14

	* doc/CMTDoc.xml: Improve the doc

	* doc/gendoc.py (Book.syntax_start): Add an attribute name in
	syntax for avoiding name conflicts

	* fragments/nmake/jar (install): 
	* fragments/nmake/java_header (install): 
	* fragments/nmake/library_no_share (install): 
	* fragments/nmake/library (install): 
	* fragments/nmake/application (install): 

	* fragments/jar (install): 
	* fragments/java_header (install): 
	* fragments/library_no_share (install): 
	* fragments/library (install): 
	* fragments/application (install): apply the centralized scripts

	* mgr/cmt_uninstall_action.bat: 
	* mgr/cmt_install_action.bat: 
	* mgr/cmt_uninstall_action.sh:
	* mgr/cmt_install_action.sh: Scripts for doing
	(un)installation into the current installation area

2003-05-02  Christian Arnault  <arnault@lal.in2p3.fr> 144

	* fragments/application (uninstall, install): 
	* fragments/library (uninstall, install): 
	* fragments/library_no_share (uninstall, install): 
	* fragments/java_header (uninstall, install): 
	* fragments/jar (uninstall, install): 
	* fragments/constituent (install, uninstall): Add (un)install actions
	idem for nmake
	

2003-05-02    <arnault@lal.in2p3.fr> 143

	* doc/gendoc.py : Create a new mechanism for generating HTML
	documentation from an XML representation.

2003-04-30  Christian Arnault  <arnault@lal.in2p3.fr> 142

	* src/cmt_parser.cxx (do_show_strategies): Display the Setup strategy

	* src/cmt_syntax.cxx (class KwdSetupStrategy): Decode the
	[no_]cleanup option for the setup_strategy in requirements file

	* src/cmt_parser.cxx (parse_arguments): Decode the -no_cleanup option
	(do_setup): Apply the cleanup only when the setup strategy permits it
	(do_config): idem

	* src/cmt_parser.h (enum): Add NoCleanup possibility to the SetupStrategy

2003-04-16  Christian Arnault  <carnault@lxplus051.cern.ch> 141

	* src/cmt_parser.cxx (run): Bug in PackageCollector::run current
	directory missed the package name. (for cmt show clients)

2003-04-12    <arnault@lal.in2p3.fr> 140

	* src\\cmt_generators.cxx: Add excludes to all calls to get_all_files 

	* src\\cmt_generator.h (class CmtGenerator): Add exclude expressions

	* src\\cmt_constituent.cxx (class constituents_action_iterator):
	Implement the -x=<pattern> option to the constituent to exclude
	patterns. Create regexps for each pattern.
	(show): Show excludes

	* src\\cmt_constituent.h (class Constituent): Add a vector of
	regexp for exclude specs.

	* src\\cmt_regexp.cxx (set): Implement the set function.

	* src\\cmt_regexp.h (class cmt_regexp): Introduce a default
	constructor and a set function

	* src\\cmt_generators.cxx:
	* src\\cmt_generator.cxx: Strong restruring of generator architecture:
	  + create a CmtGenerator basic class for all generators
	  + create derived classes for all categories of generators
                 ApplicationGenerator
                 LibraryGenerator
                 DocumentGenerator
                 ReadmeGenerator
                 PrototypeGenerator
                 DefaultMakefileGenerator
                 MSDEVGenerator
                 VSNETGenerator
                 MakeSetupGenerator
                 ConstituentsMakefileGenerator
                 DependencyGenerator
	  + transfer new stuff in cmt_generators.h/.cxx
	  + transfer all utility functions (get_all_files etc...) into the base class
	  + optimize handling of Variable and FragmentHandle objects per Generator class 
	

	* src\\cmt_install_area.cxx (config): suppress echo in quiet mode

	* src\\cmt_parser.cxx (install_test_setup_scripts): Protect tempfile against spaces in paths
	(install_test_cleanup_scripts): idem
	(install_setup_scripts): idem
	(install_cleanup_scripts): idem

2003-04-11  Christian Arnault  <carnault@lxplus051.cern.ch> 139

	* src/cmt_parser.cxx (do_run_sequence): Sequences are removed from
	cmt.cxx and implemented in a dedicated source file.

	* src/cmt_sequence.h (class SequenceRunner): Adding cmt_sequence.h
	(defining sequences)

	* src/cmt_sequence.cxx (filter): Adding cmt_sequence.cxx (extracted
	from cmt.cxx)

	* src/cmt_generator.cxx (get_all_files): Return a count of non
	empty file names.
	(build_library_makefile): Ensure that get_all_files is done only
	once.
	(build_document_makefile): Ensure that get_all_files is done only
	once (not completed yet)
	(class DocumentMakefileGenerator): Start creating an object model
	for makefile generators. Create derived classes of
	MakefileGenerator for Application, Library, document

	* src/cmt_constituent.h (class Constituent): Add excludes vector
	of exclusions

	* src/cmt_constituent.cxx (class constituents_action_iterator):
	Start implementing exclusion mechanisms on constituent sources.
	We add a -x=<pattern> cumulative option to the constituent syntax
	
2003-04-07    <arnault@lal.in2p3.fr> 138

	* src\\cmt_generator.cxx: Add DIRNAME Variable
	Add new fragments for vcproj

2003-04-05    <arnault@lal.in2p3.fr> 138

	* mgr\\requirements: define VC7 VC7debug tags for vsnet

	* src\\cmt_generator.cxx (class MakefileGenerator): Add vsnetdir variable
	Add declarations for vsnet fragments
	(reset): Install vsnetdir as ..\\VisualC
	(pseudoGUID): Implement an algorithm for creating GUIDs
	(build_vsnet_workspace): 
	(build_vsnet): 

	* src\\cmt_generator.h (class Generator): Declare
	build_vsnet_workspace and build_vsnet methods

	* src\\cmt_constituent.cxx (build_all_vsnet_files): Implement for vsnet
	(build_vsnet_file): Implement for vsnet

	* src\\cmt_constituent.h (class Constituent): Add build_all_vsnet_files
	(class Constituent): Add build_vsnet_file

	* src\\cmt_parser.cxx (class StandardMacroBuilder): Add macro
	<constituent>_GUID for vsnet.
	(parser): Implement cmt build vsnet actions

	* src\\cmt_syntax.cxx (CommandParser): Add help about cmt build vsnet

	* src\\cmt_parser.h (enum): Add action_build_vsnet

	* src\\cmt.h (class Cmt): Add Visual Sudio.Net support (From Toby Burnett)

2003-04-03  Christian Arnault  <carnault@lxplus051.cern.ch> 137

	* src/cmt_parser.cxx (do_setup): Do a config action to the
	installation area in order to perform a cleanup operation during
	the source setup

	* src/cmt_install_area.cxx (config): Display a message when doing
	cleanup of installation areas.

	* mgr/requirements: Rename cmt_(un)install_command to cmt_(un)install_area_command
	Prepare CMTr14 tag from CMTr13

	* fragments/java_header (install_java_bin_dir): idem
	* fragments/library_no_share (install_lib_dir): idem
	* fragments/jar (install_java_lib_dir): idem
	* fragments/library (install_lib_dir): idem
	* fragments/application (install_bin_dir): idem

2003-04-02  Christian Arnault  <carnault@lxplus051.cern.ch> 136

	* src/cmt_symbol.cxx (build): Bug : the macro_prepend was NOT really prepending.

2003-03-28  Christian Arnault  <carnault@lxplus051.cern.ch> 136

	* src/cmt_parser.cxx (class StandardMacroBuilder): Add CMTVERSION standard macro

2003-03-28    <arnault@lal.in2p3.fr> 135

	* src\\cmt_parser.cxx (configure_version_tag): Create three new predefined tags:
	   CMTv<n>
	   CMTr<n>
	   CMTp<n>
	to describe the current version, release and patch of CMT.

	* src\\cmt_parser.h (enum): Adding PriorityVersion for marking the
	priority of the new automatic version tag

	* src\\cmt_parser.cxx (configure_version_tag): Implement
	configure_version_tag method to create a tag for the version of
	CMT

	* src\\cmt.h (class Cmt): Adding configure_version_tag method to
	create a tag for the version of CMT

	* src\\cmt_symbol.cxx (all_set): Ensure that all path separators
	are back-slash on windows.

	* fragments\\nmake\\jar:  Adapt for the new convention (subdirectory for the CONSTITUENT)
	(install_java_lib_dir):  Add installation area mechanisms

	* fragments\\nmake\\java: Adapt for the new convention (subdirectory for the CONSTITUENT)

	* fragments\\nmake\\java_header (install_java_bin_dir): Add installation area mechanisms

2003-03-21  Christian Arnault  <carnault@lxplus051.cern.ch> 134

	* src/cmt_parser.cxx (parser): cmt run must be recursive for used
	packages (in order to get all environment variables set)

2003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 133

	* src/cmt_symbol.cxx (show): Implement common SymbolValueList::show method.

	* src/cmt_symbol.h (class SymbolValueList): Factor out printing SymbolValues

	* src/cmt_symbol.cxx (create): Give use context in warning message

	* src/cmt_symbol.h (class Symbol): Add Use* argument to print
	context in warning messages

	* src/cmt_parser.cxx (vector_to_string): Ignore empty entries to
	avoid duplicate separators

2003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 132

	* src/cmt_error.cxx (print): Consistently set the prefix "#CMT> "
	to all error messages and print outs
	* src/cmt_triggers.cxx (filter): idem
	* src/cmt_use.cxx (add): idem
	* src/cmt_generator.cxx (build_default_makefile): idem
	* src/cmt_symbol.cxx (create): idem
	* src/cmt_parser.cxx (do_show_macro): idem

	* src/cmt_symbol.cxx (create): Handle the unconsistent multiple
	declarations of sets as macros (and vice versa)

	* src/cmt_error.cxx (class Error): Add warning error text
	* src/cmt_error.h (class CmtError): Add warning error code

	* src/cmt_parser.cxx (reach_current_package): Suppress error print
	when requirements file is not found
	(do_show_macro): Improve the error message in the 
	"cmt show macro/set" command

2003-03-20  Christian Arnault  <carnault@lxplus051.cern.ch> 131

	* src/cmt_parser.cxx (reach_current_package): 
	* src/cmt_install_area.h (class CmtInstallAreaMgr): Factor out the
	construction of the current installation area

	* src/cmt_install_area.cxx (setup): Filters out "default path" for
	constructing the current installation area
	(config): idem

	* src/cmt_cmtpath_pattern.cxx (apply): Suppress "default path" (ie
	CMTPATH of CMT) from application of cmtpath_patterns

	* src/cmt_parser.cxx (get_cmt_path_sources): Add accessor to cmtpath_sources

	* src/cmt.h (class Cmt): Add accessor to cmtpath_sources

2003-03-18  Christian Arnault  <carnault@lxplus051.cern.ch> 130

	* src/cmt_cmtpath_pattern.cxx (apply): Optimize the substitution
	of "<path>" in cmtpath_patterns by avoiding a loop over path items
	when the pattern does not contain "<path>" at all

2003-03-13  Christian Arnault  <carnault@lxplus051.cern.ch> 130

	* mgr/requirements: Add -classpath $(src) to java compilation

	* src/cmt_generator.cxx (analyze_file): Default copy action for
	files with no language is applied only to java contexts

2003-03-12  Christian Arnault  <carnault@lxplus051.cern.ch> 130

	* fragments/java_copy: Use this fragment for default action on
	sources with no language

	* src/cmt_generator.cxx (module_file_action): Install default
	(copy) action for source files with no language.

	* fragments/java_header: Building jar files with * rather than *.class

	* fragments/jar: Building jar files with * rather than *.class

	* fragments/java_header: Syntax fix for generating manifest file

2003-03-11  Christian Arnault  <carnault@lxplus051.cern.ch> 129

	* src/setup.zsh: Add show cmtpath_patterns option

	* src/cmt_generator.cxx (analyze_file): Add constituent sub
	directory to output for java files

	* fragments/jar: Add constituent sub directory to ../classes to
	store *.class and jar files

	* fragments/java_header (install_java_bin_dir): Apply installation
	area mechanisms for java application

	* mgr/requirements: Need both share/bin and share/lib for installarea

2003-03-10  Christian Arnault  <carnault@lxplus051.cern.ch> 129

	* src/cmt_cmtpath_pattern.cxx (apply): CMTPATH patterns should be
	applied in revers order

	* mgr/requirements: bug fix (missing backslash)

	* src/cmt_install_area.cxx (config): Bug fix

2003-03-09    <ARNAULT@lal.in2p3.fr> 128

	* src\\cmt_install_area.cxx (setup): Make use of the cmt_installarea_prefix macro
	(config): idem

2003-03-08    <ARNAULT@lal.in2p3.fr> 128

	* mgr\\requirements: Define the cmt_installarea_prefix macro to
	parameterize the common prefix to be added to all CMTPATH entries
	for installation areas

2003-03-06    <ARNAULT@lal.in2p3.fr> 127

	* src\\cmt_install_area.cxx (config): Introduce the new macro
	cmt_installarea_paths used to declare all PATHS inside the
	installareas that will need to be checked for consistency when
	doing cmt config

	* src\\cmt_install_area.h (class CmtInstallAreaMgr): Remove
	set_path, add_path_pattern, apply_path_patterns function since
	they are all managed through cmtpath_patterns

	* src\\cmt_parser.cxx (do_show_cmtpath_patterns): Do set_standard_macros

	* src\\cmt_install_area.cxx (setup): Launch the CmtPathPattern::apply_all ()

	* src\\cmt_parser.cxx (parser): Add parsing of cmt show cmtpath_patterns

	* src\\cmt_syntax.cxx: Add parsing of cmt show cmtpath_patterns

	* src\\cmt_parser.h (enum): Add action_show_cmtpath_patterns

	* src\\cmt_database.cxx (cmtpath_patterns): Add CmtPathPatternVector object

	* src\\cmt_database.h (class Database): Add CmtPathPatternVector

	* src\\cmt_cmtpath_pattern.cxx: Install partial reproduction of cmt_pattern.cxx

	* src\\cmt_cmtpath_pattern.h: Create cmt_cmtpath_pattern.h
	(class CmtPathPattern): Install partial reproduction of cmt_pattern.h

	* mgr\\requirements: Add the source file cmt_cmtpath_pattern.cxx

	* src\\cmt_syntax.cxx (class KwdCmtPathPattern): add parser object
	for the new CommandCmtPathPattern.

	* src\\cmt_parser.h (enum): Add CommandCmtPathPattern to declare
	CMTPATH patterns to be applied onto all CMTPATH items.

2003-03-06    <ARNAULT@lal.in2p3.fr> 126

	* src\\cmt_symbol.cxx (all_set): Add debug informattion

	* src\\cmt_parser.cxx (do_run): Do set_standard_macros before
	running

2003-03-06  Christian Arnault  <carnault@lxplus051.cern.ch> 125

	* src/cmt_system.h (class CmtSystem): Adding putenv to set environment variables
	* src/cmt_system.cxx (putenv): idem

	* src/cmt_symbol.cxx (class SetBuilder): The build and clean
	function should return string object rather that referencing the
	string object attribute (protection against recursive calls)
	(class PathBuilder): idem
	(class MacroBuilder): idem
	(class ScriptBuilder): idem
	(resolve_value): Add comments and improve variable naming
	(resolve_value): idem
	(resolve_value_for_macros): idem
	(suppress_OS_delimiters): idem

	* src/Makefile.header (common_target): Use /tmp to 
	create temporary (and disposable) make fragments.  Rearrange

	* mgr/Makefile (cpp): Provide support to build on LinuxDebug 

	* fragments/constituents_header (cmt_lock_setup): Use /tmp to
	create temporary (and disposable) make fragments.  Rearrange
	statements in the building of $(tag).make so as to ensure that
	echo statements are only done when things are ok.

	* src/cmt_parser.cxx (install_cleanup_scripts): Define CMTROOT
	only if it is NOT defined yet. Goal is to keep user defined
	version of CMT.
	(install_setup_scripts): idem
	(install_test_cleanup_scripts): idem
	(install_test_setup_scripts): idem

2003-02-27  Christian Arnault  <carnault@lxplus051.cern.ch> 125

	* src/cmt_symbol.h (class ValueBuilder): due to recursivity,
	Builder function cannot share the temporary string value

2003-02-26  Christian Arnault  <carnault@lxplus051.cern.ch> 125

	* src/cmt_parser.cxx (do_run): Add Symbol::all_set
	(do_broadcast): idem (before the loop over packages)

	* src/cmt_symbol.cxx (all_set): Install the mechanism to set
	environment variables (using putenv) into CMT. This function is
	called before running the CmtSystem::execute function.
	
	* src/cmt_symbol.h (class Symbol): Remove the tabs argument of the
	print and print_clean methods (obsolete)

	* src/cmt_symbol.cxx (resolve_value): rename the argument for the
	symbol name (it applies for any symbol, not just for macros)
	(resolve_value): Improve comments
	(resolve_value_for_macros): Improve comments
	(resolve_macro_value): factor out at least one of the resolve macro algorithms

2003-02-24  Christian Arnault  <carnault@lxplus051.cern.ch> 124

	* src/cmt_generator.cxx (build_dependencies): Surrounding
	dependencies by quotes does not please gmake. We have to check
	what happens on Darwin (ie what about path names with spaces?)
	
2003-02-14    <ARNAULT@lal.in2p3.fr> 123

	* mgr\\requirements: Use XCOPY instead of copy for the install
	commands to support the directory copy

	* fragments\\installer: Suppress the need to specify install_dir
	with trailing slash

	* fragments\\nmake\\installer: Add installer for Windows

	* src\\cmt_generator.cxx (build_dependencies): Add double quotes to
	support file names with non standard characters (eg spaces) (not
	only on Windows).	
	(filter_path): Add the filter operation to work on one sigle
	file. The filter_paths function becomes obsolete and is removed.
	(analyze_document_file): Use filter_path instead of filter_paths
	(proto_file_action): idem
	(module_file_action): idem
	(build_library_makefile): idem
	(build_document_makefile): idem
	(build_dependencies): idem
	(build_document_makefile): Support sources being directories
	(module_file_action): idem

	* mgr\\cmt_install_action.bat: idem
	* mgr\\cmt_uninstall_action.bat: idem
	* fragments\\nmake\\library_no_share (install_lib_dir): idem
	* fragments\\nmake\\library (install_lib_dir): idem
	* fragments\\nmake\\application (install_bin_dir): idem

2003-02-11  Christian Arnault  <carnault@lxplus051.cern.ch> 122

	* src/cmt_cvs.cxx (class CvsImplementation): Adding explicit error
	message when base directory cannot be created during the checkout.

2003-02-06  Christian Arnault  <carnault@lxplus051.cern.ch> 121

	* src/Makefile.header (clean): Remove the pseudo config target for
	the clean target
	
2003-02-04  Christian Arnault  <carnault@lxplus051.cern.ch> 120

	* src/cmt_use.cxx (add): Add protection against recursive use
	statement to current_use

2003-02-04    <ARNAULT@lal.in2p3.fr> 119

	* src\\cmt_use.cxx (need_new): Add protection against recursive use
	statement to current_use

2003-01-31  Christian Arnault  <carnault@lxplus051.cern.ch> 118

	* mgr/requirements : library_prefix should be empty for WIN32

	* src/cmt_parser.cxx (install_setup_scripts): Protect the setup
	script generation against cases where : structuring style is set
	to without_version_directory and verion tag cannot be determined
	(eg. if the version file does not exist). Then, the -version=xxx
	option is suppressed from the setup script generation.
	(install_test_cleanup_scripts): idem

	* src/Makefile.header (common_target): Suppress a debug settings

2003-01-28    <ARNAULT@lal.in2p3.fr> 117

	* src\\cmt_install_area.cxx (instance): Suppress the production of
	LD_LIBRARY_PATH installation specs for WIN32

	* fragments\\nmake\\library_no_share (install_lib_dir): 
	* fragments\\nmake\\library (install_lib_dir): 	
	* fragments\\nmake\\application (install_bin_dir): Add install area mechanisms for WIN32

2003-01-24  Christian Arnault  <carnault@lxplus032.cern.ch> 116

	* src/cmt_install_area.cxx (instance): The constuction of the
	instance also declares the path patterns.

	(setup): Make use of the path_patterns to generate CMT statements

	(get_install_area): The current install area is preserved in the
	InstallAreaMgr instance (singleton).

	(set_path): (only used internally) build a path expression from a pattern

	(setup): Provide additional -L... options towards the install area
	for use_linkopts ad shlibbuilder
	
	(config): Perform the cleanup operation onto the current installation area:
	  check the all ref-files still refer to existing files.
	  if not erase the corresponding installed file.

	* src/cmt_install_area.h (class CmtInstallPathPattern): New class
	for storing generic patterns for (PATH/directories) duets
	generation and management inside install area mechanisms.  The
	point is to describe special conventions for things to be
	installed within the installation area.

	We describe that in terms of a set of :
	
	   o path-like variable names
	   o subdirectory patterns bellow $CMTINSTALLAREA

	All those patterns will be used to configure the installation area
	and to expand the specified PATH-like variables.

	   Ex: 
	      PATH            is associated with ${CMTCONFIG}/bin
	      LD_LIBRARY_PATH is associated with ${CMTCONFIG}/lib
	      CLASSPATH       is associated with share/bin

	   we could think of having those patterns defined in the
	   requirements file.

	* src/cmt_parser.cxx (do_remove_library_links): Handle symlinks
	induced by the <package>_libraries macros through INSTALLAREA
	mechanisms
	(do_build_library_links): (idem)
	(set_standard_macros): Setup operations for InstallArea have been
	grouped using InstallPathPatterns
	(do_config): Add cleanup of install area

2003-01-23  Christian Arnault  <carnault@lxplus032.cern.ch> 115

	* src/cmt_syntax.cxx (class KwdBuildStrategy): Support extension
	of build_strategy with install_area mechanisms.

	* src/cmt_system.cxx (mkdir): Suppress the error message when one
	cannot create a directory

	* fragments/application (install_bin_dir): 
	* fragments/library_no_share (install_lib_dir): 
	* fragments/library (install_lib_dir): Use CMTINSTALLAREA instead of INSTALLAREA

	* src/cmt_parser.cxx (do_build_library_links): Use install area
	mechanisms when the build_strategy is active rather than
	symlinking into the binary directory of the package.

	(set_standard_macros): Add the generation of CMTINSTALLAREA
	environment variable, the prepending of PATH, LD_LIBRARY_PATH,
	CLASSPATH when install_area is active

	* src/cmt_install_area.cxx: 
	* src/cmt_install_area.h (class CmtInstallAreaMgr): New class for
	managing install area mechanisms.

	* src/cmt_parser.h (enum): Add InstallArea in BuildStrategy

2003-01-22  Christian Arnault  <carnault@lxplus032.cern.ch> 114

	* src/cmt_use.cxx (find_index): Bad use of a static local variable
	implying wrong management of -import= options
	(get_index): Adding accessor function to m_index private attribute

	* src/Makefile.header (.DEFAULT): Remove temporary debugging action 

2003-01-21  Christian Arnault  <carnault@lxplus032.cern.ch> 113

	* src/cmt_symbol.cxx (all_print): Restore two-steps process for
	generating setenv calls (first normal env. variables then path-like)
	(all_print_clean): 

2002-12-20  Christian Arnault  <carnault@lxplus032.cern.ch> 112

	* src/cmt_parser.cxx (do_show_strategies): put a space character 

	* mgr/Makefile (cpp): Add the -O2 compiler option on default platforms

	* mgr/requirements: Privately try the construction of the new CMTCONFIG

	* src/cmt_parser.cxx (parse_arguments): Add cmt --version equivalence to cmt version

2002-12-19  Christian Arnault  <carnault@lxplus032.cern.ch> 111

	* mgr/requirements: Change the name of cmt_cc_version.sh to
	cmt_dcc_version.sh for case insentivity of Darwin file system

	* fragments/application (install_lib_dir): 
	* fragments/library (install_lib_dir): 
	* fragments/library_no_share (install_lib_dir): 

2002-12-18  Christian Arnault  <carnault@lxplus032.cern.ch> 110

	* src/cmt_symbol.cxx (resolve_value_for_macros): We have to
	suppress the conversion from %xxx% to $(xxx) on non-windows
	platform, since there were some occurrences of %xxx% patterns,
	which have a meaning in unix world!!

	* src/Makefile.header (.DEFAULT): Only run once sub-makefile

	* src/cmt_symbol.cxx (all_print_clean): Keep order of generation
	of sets and paths (instead of sets then paths)

	* mgr/cmt_cc_version.sh: Helper scripts for compiler query commands
	* mgr/cmt_cxx_version.sh: 
	* mgr/cmt_CC_version.sh: 
	* mgr/cmt_gcc_version.sh: 

	* mgr/cmt_filter_version.sh: 

	* fragments/constituents_header (first): Make use of cmt show setup
	
	* src/cmt_parser.cxx (do_show_setup): Display sections rather than from the Makefile
	
	* src/cmt_use.cxx (class use_action_iterator): action_show_setup
	traverses the private subtrees (like show_uses)

	* src/cmt.h (class Cmt): 
	* src/cmt_parser.cxx (do_show_setup): 
	* src/cmt_parser.h (enum): Add action_show_setup for grouping show uses,tags,path

	* mgr/requirements: Manage a common (sh/csh) style for output
	redirection for system query commands

	* fragments/library_no_share (install_lib_dir): 
	* fragments/library (install_lib_dir): 
	* fragments/application (install_bin_dir): Use cmt_install_command
	instead of install_command for install area mechanisms to avoit
	conflicts with the installer document generator

2002-12-18    <ARNAULT@lal.in2p3.fr> 109

	* src\\cmt_parser.cxx (do_show_strategies): Add display of setup strategy
	(print_context): Apply the build strategy

	* src\\cmt.h (class Cmt): Add get/set current_setup_strategy methods
	(class Cmt): Add m_current_setup_strategy attribute

	* src\\cmt_parser.h (enum): Add SetuStrategy enumeration

	* src\\cmt_syntax.cxx (class KwdSetupStrategy): Add SetupStrategy class 

	* src\\cmt_parser.h (enum): Add setup_strategy keyword to control
	the production of <PACKAGE>CONFIG and <PACKAGE>ROOT env. variables

	* src\\cmt_parser.cxx (class StandardMacroBuilder): Add few debug printouts

	* src\\cmt_use.cxx (find_index): The returned index must be the
	m_index attribute of the Use object rather than the index in the
	use list of the package!!

2002-12-16  Christian Arnault  <carnault@lxplus032.cern.ch> 108

	* src/Makefile.header (binclean): Add a quick binclean target
	(all): prepend a systematic config target 

	* fragments/constituents_header (all): Suppress dummy messages in gmake all and config

2002-12-16    <ARNAULT@lal.in2p3.fr> 107

	* src\\cmt.h (class Cmt): do_help remembers of the current action
	being parsed to have cmt help action

	* src\\cmt_syntax.h (class CommandParser): Command parsing
	mechanisms. So far only the help is handled. General map-based
	parsing mechanism is foreseen

	* src\\cmt_parser.h (enum ActionType): Add global actions for
	build, check, show only for error and help management

	* src\\cmt_syntax.cxx (show): Command Help management introduced (will be improved)

	* src\\cmt_parser.cxx (parse_arguments): Improve command help with SyntaxParser  

	* mgr\\requirements: Adding specs for query commands on WIN32

2002-12-12  Christian Arnault  <carnault@lxplus032.cern.ch> 106

	* mgr/Makefile: Remove the mail sending after CMT rebuild... (!!!)

	* src/cmt_symbol.cxx (resolve_macro_value): Detects patterns like:
	`$(macro-name)` within symbol definitions. The specified macro is expected 
	to contain a shell command that will then be executed when expanding 
	the macro.

	* mgr/requirements: Add some system information queries:
	hardware
	system_version
	compiler_version

	* mgr/cmt_filter_version.sh: Add a filtering script for system version
	informations.

2002-12-12    <ARNAULT@lal.in2p3.fr> 105

	* mgr\\requirements:  make use of SyntaxParser
	* src\\cmt_triggers.cxx: idem
	* src\\cmt_use.cxx: idem
	* src\\cmt_parser.cxx: idem
	* src\\cmt_pattern.cxx: idem

	* src\\cmt_syntax.cxx: 
	* src\\cmt_syntax.h (class Kwd): Introduce the new syntax parsing
	mechanism. It is based on a cmt_map of keyword objects. All requirements parsing 
	operations are now implemented in the SyntaxParser singleton.

	* src\\cmt_parser.cxx (do_build_library_links): Introduce the
	cmt_symlink_cmd macro to override the internal management of
	symlink creation in case this is unavailable (eg on Windows)

2002-12-11  Christian Arnault  <arnault@lal.in2p3.fr> 104

	* src/cmt_parser.cxx (do_set_versions): Make use of cmt broadcast
	to install version files in all packages. Inherit broadcast syntax.
	
	(do_broadcast): Add possibility to use template like in patterns
	Start with <version>.

	* mgr/Makefile (cpp): Add profiling option

	* fragments/check_java (check): Add run options

	* src/cmt_use.cxx (find): Use Package grouping of uses
	(find_index): Use index registration information
	(move): Use index registration information
	(reorder): idem
	(need_new): Revisit the algo to avoid useless multiple reading of requirements files 
	(add): Use index registration information
	(operate): Improve for without version directory style
	(Package): Introduce Package grouping of Use objects 

	* src/cmt_parser.cxx (do_set_versions): Use Package::is_cmt feature.

	* src/cmt_string.cxx (replace): Optimize by reducing the calls to strlen.

	* src/cmt_generator.cxx (build_dependencies): Use Package::is_cmt feature.

	* src/cmt_include.cxx (print_all): Use Package::is_cmt feature.

	* src/cmt_script.cxx (all_print_clean): Use Package::is_cmt feature.

	* src/cmt_database.cxx (pattern_list_map): Discard dump features

	* src/cmt_database.h (class Database): Restore tag management.
	Introduce PatternList and Package management

	* src/cmt_project.cxx (class ProjectMgr): Suppress tag management
	from projects. Make it back to global management (from Database)

	* src/cmt_pattern.h (class PatternList): Introduce PatternList
	class to group pattern by names. This class contains a list of
	Patterns of the same name but originating from different uses.

	* src/cmt_use.h (class Use): renaming uses() to get_ordered_uses() and
	all_uses() to get_instances ()

2002-12-10  Christian Arnault  <arnault@lal.in2p3.fr> 103

	* src/cmt_project.h (class Project): Add a tag_map to manage tags 

	* src/cmt_tag.cxx (add): Add a tag_map to manage tags

	* src/cmt_tag.h (class Tag): Introduce a map of tags

	* src/cmt_database.cxx (symbol_map): install a map of symbols

	* src/cmt_database.h (class Database): install a map of symbols

	* src/cmt_symbol.cxx (create): Use symbol map to find existing symbols
	(find): idem
	(symbol_map): access to the map of symbols from the database
	(clear_all): clear the database and the map

	* src/cmt_symbol.h (class Symbol): Introduce the new typedef
	SymbolMap for a cmt_map of Symbols

	* src/cmt_map.h: Introduce cmt_map.h implementing a map (binary tree)

	* src/cmt_regexp.cxx (cmt_regexp): Rename cmt_node to cmt_regexp_node
	* src/cmt_regexp.h: Rename cmt_node to cmt_regexp_node

2002-12-09  Christian Arnault  <arnault@lal.in2p3.fr> 102

	* fragments/check_java (check): Add run options (global and local)

2002-12-09  Christian Arnault  <carnault@lxplus032.cern.ch> 101

	* mgr/requirements: Fix typo (trailing backslash)

	* src/cmt_parser.cxx (parser): Add set versions operation to perform a
	global set version onto all used packages.
	(do_set_versions): Start implementing a draft scenario
	(parser): the set versions action require parsing the use graph.

	* src/cmt.h (class Cmt): idem.
	
	* src/cmt_parser.h (enum): idem

	* src/cmt_parser.cxx (configure_current_package): Set the default
	version expression in absence of both version directory AND
	version file to "v*" (instead of "v0")

	* src/Makefile.header (binclean): Add new standard target for
	erasing at once the $(bin) directory

2002-12-08    <ARNAULT@lal.in2p3.fr> 100

	* src\\cmt_parser.cxx (do_set_version): 
	(scan_path): Improving the management of various structuring styles for the FileScanner.
	(do_show_strategies): Displays structuring style in show_strategies
	(reach_current_package): Prepare the removal of automatic addition of the
	current package area to CMTPATH...
	(do_config): Fix discovery of structuring style
	(configure_current_package): Fix discovery of structuring style
	(class SequenceRunner): Accept version argument in sequence files

	* src\\cmt.h (class Cmt): 
	* src\\cmt_parser.h (enum): Add set version command to install version.cmt file

	* src\\cmt_system.cxx (is_version_directory): Handle wild cards in
	version ids detection

	* mgr\\requirements: Add Darwin definitions

	* mgr\\cmt_make_shlib_common.sh (temp_shlib): Protect against
	module files with space in their names

	* mgr\\requirements: try to remove CMT/v from PATH rather then CMT
	only so as to keep subpackages of CMT

	* src\\cmt_use.cxx (set_auto_imports_state): fix a bug on use pointer comparisons.

	* fragments\\nmake\\constituent: 
	* fragments\\nmake\\constituents_header (dirs): fix naming scheme : only .nmake

	* mgr\\NMake (cmt): protect VisualC.nmake generation against
	reminder of the physical location of the rebuild

	* src\\demo\\demoA\\requirements: Add PATH towards java on Windows

	* mgr\\NMake: Add a target to re-generate VisualC.nmake inside CMT
	so as to have proper nmake demo

	* mgr\\requirements: provide debug_option for WIN32 platform

	* fragments\\nmake\\make_header (tags): Suppressed
	$(CMTCONFIG),$(CMTEXTRATAGS) and only keep $(CMTEXTRATAGS)

	* fragments\\nmake\\constituents_trailer: added to NMake family
	* fragments\\nmake\\group: added to NMake family 

2002-12-05    <ARNAULT@lal.in2p3.fr> 99

	* src\\cmt_vector.h (cmt_vector): replace static int frame_size by
	enum {frame_size} to C++ ANSI compliance.

	* src\\cmt_use.cxx (BestFitSelector::operate): When structurig
	style is withut-version-directory, the version field of the
	package may still contain wild cards. This has to be considered
	when checking compatibility.

2002-12-04  Christian Arnault  <carnault@lxplus032.cern.ch> 98

	* src/cmt_use.cxx (set_auto_imports_state): bug fix (corresponding to v1r12p20021129)

2002-10-30  Christian Arnault  <carnault@lxplus032.cern.ch> 97

	* src/cmt_vector.h (cmt_vector): define frame_size as a static
	const int instead of enum

2002-10-15  Christian Arnault  <carnault@lxplus032.cern.ch> 96

	* src/cmt_use.cxx: Protect against use objects badly recorded
	within auto_imports_state vectors

	* src\\cmt_parser.cxx (scan_path): Fix algo to scan packages to
	cope with no-version style
	(class StandardMacroBuilder): Fix no-auto-imports algo 

2002-09-24  Christian Arnault  <arnault@lal.in2p3.fr> 95

	* mgr/ChangeLog.php: Introduce the online filter for ChangeLog file

	* doc/documents.html: Use PHP to filter out ChangeLog

	* mgr/Makefile (docs): Install ChangeLog and ChangeLog.php into web site

	* src/setup.zsh: Add an empty leading line to avoid shell problems...

	* src/Makefile.header (config): force the rebuild of $(tag).make

2002-08-06  Christian Arnault  <arnault@lal.in2p3.fr> 94

	* fragments/library: Split action list so as to force the rebuild
	of shared libraries when it has been lost while shstamp is still
	there.

2002-06-21    <arnault@lal.in2p3.fr> 93

	* src/cmt_parser.cxx (class SequenceRunner): Add support for comments in the sequence files
	(do_show_macro_names): 
	(do_show_set_names): 
	(print_symbol_names): 
	
	(class StandardMacroBuilder): prepare the production of
	<constituent>_use_linkopts but let it unsused for the time being

	(class StandardMacroBuilder): fix a typo
	
	(class StandardMacroBuilder): fix a bug

	* src/cmt_parser.h (enum): 
	* src/cmt.h (class Cmt): Adding do_show_macro_names,
	do_show_set_names, print_symbol_names functions

	* src/setup.tcsh: 
	* src/setup.zsh: move the -quiet option before verb to avoid confusion with new syntax for show xxxs

	* src/demo/tprivate.cmt: 
	* src/demo/demo1.cmt: improve test sequences

	* mgr/requirements: add the macro preproc to prepare new scheme
	for dependency generation using cpp -MD

	* mgr/Makefile (cpp): Specialize default cpp according to the platform
	(hosts): we don't need BOOL hosts anymore
	(demo): the demo sequence now exploits the sequence runner of CMT
	(tprivate): new test sequence on private uses.

	* mgr/ChangeLog.awk: Adding this awk script to convert the ChangeLg file int HTML format

	* doc/CMTDownload.html: 
	* doc/download.html: 
	* doc/install.html: doc improvements

	* fragments/application: Temporarily stop using $(${CONSTITUENT}_use_linkopts)

	* src/NMakefile.header (tag): 
	* src/Makefile.header (tags): 
	* fragments/nmake/constituents_header (tag):
	* fragments/nmake/make_header (tag):
	* fragments/constituents_header (tag):
	* fragments/make_header (tag): Add $CMTCONFIG to tags

2002-05-29    <arnault@lal.in2p3.fr> 92

        * 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<br>
                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<br>
                introduce action_apply to activate a tag from a requirements file<br>
                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  Christian Arnault  <arnault@lal.in2p3.fr> 91

        * 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.

2002-05-28  Christian Arnault  <carnault@lxplus040.cern.ch> 90

        * 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    <arnault@lal.in2p3.fr> 89

        * doc\\todo.html: Adding entries

2002-05-24  Christian Arnault  <carnault@lxplus012.cern.ch> 88

        * src/cmt_cvs.cxx (class CvsImplementation): fix few problems with
        no_version_directory.

2002-05-23  Christian Arnault  <arnault@lal.in2p3.fr> 87

        * 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  Christian Arnault  <arnault@lal.in2p3.fr> 86

        * 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)
        (reach_package): structuring style
        (get_full_path): new helper for centralizing the full package path
        computation
        (reduce_path): new helper to normal form with $<PACKAGE>ROOT
        (get_paths): add debug prints
        (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
        (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
         (scan_path): 
         (scan_package): 
         (run): 
         (PackageCollector::run): 
         (configure): calling configure_current_structuring_style
         (configure_current_package): 
         (configure_current_structuring_style): new method
         (do_broadcast): use Use::get_full_path
         (do_config): 
         (do_create): 
         (do_help): 
         (do_lock): suppress unused local variable
         (do_remove): 
         (do_show_macros): add pattern for selection instead of default '*'
         (do_show_sets): idem
         (do_unlock): suppress unused local variable
         (get_current_strategy): new method
         (install_cleanup_scripts): install cleanup scripts on windows
         (load): 
         (parse_arguments): re-number argument array
         (parse_arguments): support arguments for cmt show macros
         (parse_arguments): support arguments for cmt show sets
         (parse_arguments): -with_version_directory option
         (parse_arguments): -without_version_directory option
         (parse_requirements): 
         (parser): support arguments for cmt show macros
         (parser): support arguments for cmt show sets
         (print_context): use Use::get_full_path
         (print_macros): selection pattern (reg. expression) on symbols
         (reach_current_package): 
         (set_standard_macros): add getting pwd
         (set_standard_macros): structuring style

        * src/cmt_generator.cxx 
         (SourceFile::set): use CmtSystem::reduce_file_separators 
         (prepare_use_context): idem
         (prepare_use_context): use Use::get_full_path
         (set_full_name): idem
         (build_make_setup): idem

        * src/cmt_fragment.cxx
         (print): use Use::reduce_path factorization
         (locate): use Use::get_full_path factorization
         (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  unknown  <arnault@lal.in2p3.fr> 85

        * 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  Christian Arnault  <arnault@asc.lal.in2p3.fr> 84

        * 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  Christian Arnault  <carnault@lxplus030.cern.ch> 84

        * 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    <arnault@lal.in2p3.fr> 83

        * src\\cmt_parser.cxx (print_clean): Suppress the unset of CMTCONFIG

2002-04-10    <arnault@lal.in2p3.fr> 82

        * fragments\\library: 
        * fragments\\library_no_share: Suppress the experimental change for 
        erasing the object files after filling the library

2002-04-10  Christian Arnault  <carnault@lxplus044.cern.ch> 81

        * 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  Christian Arnault  <carnault@lxplus044.cern.ch> 80

        * 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  Christian Arnault  <carnault@lxplus037.cern.ch> 79

        * src/cmt_symbol.cxx (suppress_OS_delimiters): operate on %...%
        patterns only on Windows machines.

2002-03-20  Christian Arnault  <carnault@lxplus042.cern.ch> 78

        * 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)
        (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  Christian Arnault  <carnault@lxplus037.cern.ch> 77

        * src/cmt_parser.cxx (set_standard_macros): Cleanup management of m_current_tag

2002-03-07  Christian Arnault  <carnault@lxplus048.cern.ch> 76

        * 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  Christian Arnault  <carnault@lxplus042.cern.ch> 75

        * 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  Christian Arnault  <carnault@lxplus016.cern.ch> 74

        * 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    <arnault@lal.in2p3.fr> 73

        * 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    <arnault@lal.in2p3.fr> 72

        * 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  Christian Arnault  <arnault@lal.in2p3.fr> 71

        * 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    <arnault@lal.in2p3.fr> 70

        * 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    <arnault@lal.in2p3.fr> 69

        * src\\cmt_use.cxx (class use_action_iterator): Install UseContext
        to manage proper propagation of -no_auto_imports

2002-01-30    <arnault@lal.in2p3.fr> 68

        * 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    <arnault@lal.in2p3.fr> 67

        * 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  Christian Arnault  <carnault@lxplus035.cern.ch> parallelbuilds

        * 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  Christian Arnault  <carnault@lxplus001.cern.ch> 66

        * src/NMakefile.header (tags): Apply the fix for tags onto
        NMakefile.header

2002-01-07    <arnault@lal.in2p3.fr> 65

        * 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  Christian Arnault  <carnault@atlas50.cern.ch> 64

        * 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  Christian Arnault  <carnault@lxplus040.cern.ch> 63

        * 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  Christian Arnault  <carnault@lxplus010.cern.ch> 62

        * 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=<pattern> error

2001-11-08  Christian Arnault  <carnault@lxplus028.cern.ch> 61

        * 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  Christian Arnault  <carnault@lxplus006.cern.ch> 60

        * 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 $(<name>) or
        ${<name>} or %<name>% 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  Christian Arnault  <carnault@lxplus038.cern.ch> 59

        * src/cmt_generator.cxx (build_document_makefile): protect against
        missing files (causing infinite loops in Make)

2001-11-05  Christian Arnault  <carnault@lxplus005.cern.ch> 58

        * 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  Christian Arnault  <arnault@asc.lal.in2p3.fr> 57

        * 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  Christian Arnault  <carnault@atlas50.cern.ch> 56

        * 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  Christian Arnault  <carnault@atlas50.cern.ch> 55

        * 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  Christian Arnault  <carnault@lxplus038.cern.ch> 55

        * 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): 
        (show_all): 
        (class use_action_iterator): 
        (reach_package): 
        (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
        (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  Christian Arnault  <carnault@lxplus007.cern.ch> 54

        * 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  Christian Arnault  <carnault@lxplus026.cern.ch> 53

        * 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  Christian Arnault  <carnault@lxplus025.cern.ch> 52

        * 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  Christian Arnault  <carnault@lxplus047.cern.ch> 51

        * 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  Christian Arnault  <carnault@lxplus047.cern.ch> 50

        * 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  Christian Arnault  <carnault@lxplus021.cern.ch> 49

        * src/cmt_version.h: Tagging for v1r9p20011011
        
        * fragments/library: (bug fix) transmit both -tag=<tag> and
        -tag_add=<tag_list> to cmt_make_shlib_common.sh

2001-10-11  Christian Arnault  <arnault@asc.lal.in2p3.fr> 48

        * src/cmt_parser.cxx: remove debug print options

2001-10-10  Christian Arnault  <arnault@asc.lal.in2p3.fr> 47

        * 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>
          -tag_add=<tag-list>
          -tag_remove=<tag-list>

2001-10-03  Christian Arnault  <carnault@lxplus036.cern.ch> 46

        * 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  Christian Arnault  <carnault@lxplus007.cern.ch> 45

        * 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  Christian Arnault  <carnault@lxplus034.cern.ch> 44

        * src/cmt_cvs.cxx (class CvsImplementation): Bug in
        checkout_from_requirements. Did not accept leading spaces on use
        statements.

2001-09-27  Christian Arnault  <carnault@lxplus036.cern.ch> 43

        * 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  Christian Arnault  <arnault@asc.lal.in2p3.fr> 42

        * 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.
                             (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=<directory>
        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=<tag-list> to
        specify a list of tags to validate.

2001-09-25  Christian Arnault  <carnault@lxplus034.cern.ch> 41

        * 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)
        
        (do_remove_library_links): Upgrade "remove library_links" to make
        it compliant to the algorithm used in "build library_links"

2001-09-24  Christian Arnault  <carnault@lxplus014.cern.ch> 40

        * 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.
        (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): 
                             (all_print): 
                             (print): 
                             (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  Christian Arnault  <carnault@lxplus045.cern.ch> 39

        * 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.

2001-08-24  Christian Arnault  <carnault@lxplus011.cern.ch> 38

        Tagging v1r9p2001p0824

2001-08-24  Christian Arnault  <carnault@lxplus011.cern.ch> 38

        * mgr/cmt_system.sh: Improve the reliability of the cmt_system.sh
        script against variants of "fs sysname"

2001-08-23  Christian Arnault  <carnault@lxplus030.cern.ch> 37

        * 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  Christian Arnault  <carnault@lxplus024.cern.ch> 36

        * 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  Christian Arnault  <carnault@lxplus013.cern.ch> 35

        * 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  Christian Arnault  <carnault@lxplus028.cern.ch> 34

        * src/cmt_cvs.cxx (class CvsImplementation): Improving the
        recursive checkout process

2001-08-20    <arnault@lal.in2p3.fr> 33

        * src\\cmt_cvs.cxx (class CvsImplementation): Reorganizing some CVS operations:<ul>
          <li> Apply the CMTCVSOFFSET env. variable to all actions (tags, branches, subpackages)
          <li> cleanup checkout algorithms (remove some obsolete variables)
          <li> add the -requirements <requirements-file-path> option to checkout according to
            a set of use statements.
          <li> remove the inheritance to Awk of CvsImplementation to split the filter into 2
            phases (implemented as 2 separated Awk derived classes) RecursivePass1 and
            RecursivePass2.</ul>

2001-08-16  Christian Arnault  <carnault@lxplus046.cern.ch> 32

        * 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  Christian Arnault  <arnault@lal.in2p3.fr> 31

        * src/cmt_version.h: setting the patch v1r9p20010720

2001-07-20  Christian Arnault  <carnault@lxplus019.cern.ch> 30

        * 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  Christian Arnault  <carnault@lxplus041.cern.ch> 29

        * 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  Christian Arnault  <carnault@lxplus030.cern.ch> 28

        * 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 <file> 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  Christian Arnault  <carnault@lxplus012.cern.ch> 27

        * 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  Christian Arnault  <carnault@lxplus034.cern.ch> 26

        * src/cmt_version.h: setting the patch v1r9p20010704

2001-07-02  Christian Arnault  <carnault@lxplus034.cern.ch> 25

        * 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  Christian Arnault  <carnault@lxplus047.cern.ch> 24

        * 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  Christian Arnault  <carnault@lxplus020.cern.ch> 23

        * 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    <arnault@lal.in2p3.fr> 22

        * 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 @<optionfile> 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  Christian Arnault  <arnault@lal.in2p3.fr> 22

        * 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  Christian Arnault  <arnault@lal.in2p3.fr> 22

        * src/cmt_parser.cxx (do_broadcast): Bug fix in do_broadcast: the
        -begin option wrongly implied the -global option.

2001-06-13    <arnault@lal.in2p3.fr> 22

        * 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  Christian Arnault  <arnault@lal.in2p3.fr> 22

        * 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  Christian Arnault  <arnault@lal.in2p3.fr> 22

        * 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  Christian Arnault  <arnault@lal.in2p3.fr> 22

        * 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  Christian Arnault  <arnault@lal.in2p3.fr> 22

        * src/cmt_parser.cxx (do_broadcast): Fix the default (-local)
        option to act as -depth=1.
        Improve some error messages.

2001-05-21    <arnault@lal.in2p3.fr> 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.

-------------------------------------------------------------------------------------
2001-05-18  Christian Arnault  <arnault@lal.in2p3.fr> 21

        -> Tag CMTv1r9p20010521

        * 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.

        (class CvsImplementation): Improve protection against CVS modules
        not found.
        
        (class CvsImplementation): Added the --help option the cmt checkout.

2001-07-10  Christian Arnault  <carnault@lxplus017.cern.ch> b-21

        * 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
        <constituent>_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 <args> build dependencies <constituent-name> <new-source-list>"
        
        (do_config): drop all makefile fragments from the mgr/cmt
        directory AND from the binary directory.

2001-05-11  Christian Arnault  <arnault@lal.in2p3.fr> 20

        * Moving to v1r8
        
        
2001-05-11  Christian Arnault  <arnault@lal.in2p3.fr> 19

        * src/cmt_deps_builder.cxx (): Augmented local internal
        line buffer (from 1024 to 16384).

        * doc/CMTDoc.html: document the new &lt;package>_root macro

        * src/cmt_parser.cxx (set_standard_macros) (get_best_form): Define
        a new set of standard macros using the pattern <package>_root
        similar to <PACKAGE>ROOT except that this new definition uses the
        get_best_form, with a relative path to the package. The
        <PACKAGE>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 <package>_root standard macro


2001-05-10  Christian Arnault  <arnault@lal.in2p3.fr> 18

        * src/cmt_parser.cxx (do_broadcast): Add the -begin=<pattern>
        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  Christian Arnault  <carnault@lxplus023.cern.ch> 17

        * 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.
        
        (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  Christian Arnault  <carnault@lxplus019.cern.ch> 17

        * 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  Christian Arnault  <carnault@lxplus022.cern.ch> 16

        * src/cmt_parser.cxx (get_best_form): Validate the compression
        algorithm for paths to packages (only for the macro <PACKAGE>ROOT
        - this is still not true for the <PACKAGE>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  Christian Arnault  <carnault@lxplus022.cern.ch> 15

        * src/cmt_parser.cxx (set_standard_macros): Prepare the production
        of <PACKAGE>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  Christian Arnault  <carnault@atlas009.cern.ch> 15

        * src/cmt_generator.cxx (build_readme): bug when generating the
        readme_trailer fragment : the PACKAGE variable should be reset to
        current.

2001-04-11  Christian Arnault  <arnault@lal.in2p3.fr> 15

        * 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.
        
        (build_readme): Add the -url=<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  Christian Arnault  <arnault@lal.in2p3.fr> 14

        * 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  Christian Arnault  <arnault@lal.in2p3.fr> 13

        * 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  Christian Arnault  <arnault@lal.in2p3.fr> 12

        * 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    <arnault@lal.in2p3.fr> 12

        * src\\cmt_tag.cxx (Tag::add(const 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  Christian Arnault  <arnault@lal.in2p3.fr> 11

        * 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)

2001-04-03  Christian Arnault  <carnault@atlas006.cern.ch> 10

        * 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    <arnault@lal.in2p3.fr> 9

        * 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  Christian Arnault  <carnault@atlas005.cern.ch> 8

        * 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  Christian Arnault  <carnault@lxplus017.cern.ch> 7

        * 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  Christian Arnault  <carnault@atlas007.cern.ch> 6

        * 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  Christian Arnault  <arnault@lal.in2p3.fr> 5

        * src/cmt_parser.cxx (parse_arguments): When the tag specified in
        the command line arguments (using -tag=<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  Christian Arnault  <arnault@lal.in2p3.fr> 4

        * 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%.

2001-03-16  Christian Arnault  <carnault@atlas009.cern.ch> 3

        * mgr/requirements: clean up variants for VisualC and
        VisualC/debug

2001-03-15    <arnault@lal.in2p3.fr> 2

        * 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  Christian Arnault  <arnault@lal.in2p3.fr> 1

        * 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  Christian Arnault  <arnault@lal.in2p3.fr>

        * 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    <arnault@lal.in2p3.fr>

        * src\\cmt_parser.cxx (do_build_library_links): Handle libraries
        specified as a full path in <package>_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    <arnault@lal.in2p3.fr>

        * 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  Christian Arnault  <arnault@lal.in2p3.fr>

        * src/cmt_parser.cxx (do_build_temporary_name): Add the build
        temporary_name command to supply that missing function on various
        shells.
        (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  Christian Arnault  <arnault@lal.in2p3.fr>

        * src/cmt_cvs.cxx (class CvsImplementation): Fix misuse of
        checkout_package arguments (confusion between package path and
        checkout directory)

2001-02-26    <arnault@lal.in2p3.fr>

        * 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)

2001-02-26  Christian Arnault  <arnault@lal.in2p3.fr>

        * 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  Christian Arnault  <arnault@lal.in2p3.fr>

        * 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    <arnault@lal.in2p3.fr>

        * 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    <arnault@lal.in2p3.fr>

        * src\\cmt_use.cxx: clean up space & tabs

        * cmt_parser.cxx (parse_requirements_text): Abort the parser in
        case of error, but only for check configuration command.

        * NMakefile.header (lex_echo): Add -quiet option to cmt command
        except cmt check configuration
        
        * constituents.nmake: Add -quiet option to cmt command

2001-01-30    <arnault@lal.in2p3.fr>

        * 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

2001-01-30    <arnault@lal.in2p3.fr>

        * 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 <name>

        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
        
2001-01-30    <arnault@lal.in2p3.fr>

        * 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.

        * 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" !!!)

        * cmt_parser.cxx (set_standard_macros): Implement all_constituents
        and all_constituentsclean unconditionally.

        * NMakefile.header (checkuses): if defined statements require that
        the macro to test is provided without quotes.

        * cmt_generator.cxx: Apply the new convention of installing object
        files into $(bin)${CONSTITUENTS} also for applications (was only
        done for libraries)

        * 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.

        * cmt_cvs.cxx (class CvsImplementation): Use '/' \303\255nstead of
        CmtSystem::file_separator for CVS-only file specs.

2000-12-26    <arnault@lal.in2p3.fr>

        * cmt_fragment.h (class Fragment and FragmentHandle): Install all
        variants of (win)copy methods that act upon a cmt_string instead
        of a FILE*.

        * cmt_model.cxx: Create the implementation file for CmtModel 

        * cmt_model.h (class CmtModel): Create the CmtModel class

        * cmt_parser.cxx (do_expand_model): Add the new command verb :
        'expand model' and all associated features
        (do_expand_model): call the CmtModel::expand

