Index: /CMT/HEAD/ChangeLog
===================================================================
--- /CMT/HEAD/ChangeLog	(revision 598)
+++ /CMT/HEAD/ChangeLog	(revision 599)
@@ -1,2 +1,32 @@
+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
 
Index: /CMT/HEAD/mgr/fragments/nmake/cleanup_application
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/cleanup_application	(revision 598)
+++ /CMT/HEAD/mgr/fragments/nmake/cleanup_application	(revision 599)
@@ -1,2 +1,3 @@
 	-$(cleanup_echo) ${CONSTITUENT}$(application_suffix)
 	-$(cleanup_silent) if exist $(bin)${CONSTITUENT}$(application_suffix) del $(bin)${CONSTITUENT}$(application_suffix)
+	-$(cleanup_silent) if exist $(bin)${CONSTITUENT}$(application_suffix).manifest del $(bin)${CONSTITUENT}$(application_suffix).manifest
Index: /CMT/HEAD/mgr/fragments/nmake/library
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/library	(revision 598)
+++ /CMT/HEAD/mgr/fragments/nmake/library	(revision 599)
@@ -19,4 +19,5 @@
 	$(cleanup_echo) #objects
 	$(cleanup_silent) for %f in (${OBJS}) do $(cleanup_silent)if exist %f del %f
+	$(cleanup_silent) if exist $(bin)${CONSTITUENT} rmdir /S /Q $(bin)${CONSTITUENT}
 	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.arc del $(bin)${CONSTITUENT}.arc
 	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.lib del $(bin)${CONSTITUENT}.lib
@@ -24,4 +25,5 @@
 	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.exp del $(bin)${CONSTITUENT}.exp
 	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.dll del $(bin)${CONSTITUENT}.dll
+	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.dll.manifest del $(bin)${CONSTITUENT}.dll.manifest
 	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.pdb del $(bin)${CONSTITUENT}.pdb
 
Index: /CMT/HEAD/mgr/fragments/nmake/library_no_share
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/library_no_share	(revision 598)
+++ /CMT/HEAD/mgr/fragments/nmake/library_no_share	(revision 599)
@@ -14,4 +14,5 @@
 	$(cleanup_echo) #objects
 	$(cleanup_silent) for %f in (${OBJS}) do $(cleanup_silent)if exist %f del %f
+	$(cleanup_silent) if exist $(bin)${CONSTITUENT} rmdir /S /Q $(bin)${CONSTITUENT}
 	$(cleanup_silent) if exist $(${CONSTITUENT}lib) del $(${CONSTITUENT}lib)
 
Index: /CMT/HEAD/mgr/fragments/nmake/library_no_static
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/library_no_static	(revision 598)
+++ /CMT/HEAD/mgr/fragments/nmake/library_no_static	(revision 599)
@@ -38,4 +38,5 @@
 	$(cleanup_echo) #objects
 	$(cleanup_silent) for %f in (${OBJS}) do $(cleanup_silent)if exist %f del %f
+	$(cleanup_silent) if exist $(bin)${CONSTITUENT} rmdir /S /Q $(bin)${CONSTITUENT}
 	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.arc del $(bin)${CONSTITUENT}.arc
 	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.lib del $(bin)${CONSTITUENT}.lib
@@ -43,4 +44,5 @@
 	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.exp del $(bin)${CONSTITUENT}.exp
 	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.dll del $(bin)${CONSTITUENT}.dll
+	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.dll.manifest del $(bin)${CONSTITUENT}.dll.manifest
 	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.pdb del $(bin)${CONSTITUENT}.pdb
 
Index: /CMT/HEAD/mgr/fragments/nmake/package
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/package	(revision 598)
+++ /CMT/HEAD/mgr/fragments/nmake/package	(revision 599)
@@ -22,10 +22,10 @@
 !if "$(cmt_${PACKAGE}_is_local)" != ""
 	@echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"
 !if "$(LOG_LOCATION)" != ""
 	$(silent) type nul > $(LOG_LOCATION)\$(${PACKAGE}FullName)$(LOG_SUFFIX)
 	@( echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------" ) $(${PACKAGE}OutErr)
 !endif
@@ -45,10 +45,10 @@
 !if "$(BCAST_GLOBAL)" != ""
 	@echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"
 !if "$(LOG_LOCATION)" != ""
 	$(silent) type nul > $(LOG_LOCATION)\$(${PACKAGE}FullName)$(LOG_SUFFIX)
 	@( echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------" ) $(${PACKAGE}OutErr)
 !endif
@@ -94,5 +94,5 @@
 !if "$(cmt_${PACKAGE}_is_local)" != ""
 	@echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD) clean] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD) clean] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"
 	$(silent) cd /d $(${PACKAGE}MgrPath) && $(BCAST_CMD) clean
@@ -100,5 +100,5 @@
 !if "$(BCAST_GLOBAL)" != ""
 	@echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD) clean] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD) clean] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"
 	$(silent) cd /d $(${PACKAGE}MgrPath) && $(BCAST_CMD) clean
@@ -111,5 +111,5 @@
 !if "$(cmt_${PACKAGE}_is_local)" != ""
 	@echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD) binclean] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD) binclean] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"
 	$(silent) cd /d $(${PACKAGE}MgrPath) && $(BCAST_CMD) binclean
@@ -117,5 +117,5 @@
 !if "$(BCAST_GLOBAL)" != ""
 	@echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD) binclean] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD) binclean] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"
 	$(silent) cd /d $(${PACKAGE}MgrPath) && $(BCAST_CMD) binclean
@@ -128,5 +128,5 @@
 !if "$(cmt_${PACKAGE}_is_local)" != ""
 	@echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD) uninstall] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD) uninstall] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"
 	$(silent) cd /d $(${PACKAGE}MgrPath) && $(BCAST_CMD) uninstall
@@ -134,5 +134,5 @@
 !if "$(BCAST_GLOBAL)" != ""
 	@echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD) uninstall] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD) uninstall] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"
 	$(silent) cd /d $(${PACKAGE}MgrPath) && $(BCAST_CMD) uninstall
@@ -145,5 +145,5 @@
 !if "$(cmt_${PACKAGE}_is_local)" != ""
 	@echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD) check] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD) check] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"
 	$(silent) cd /d $(${PACKAGE}MgrPath) && $(BCAST_CMD) check
@@ -151,5 +151,5 @@
 !if "$(BCAST_GLOBAL)" != ""
 	@echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD) check] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD) check] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"
 	$(silent) cd /d $(${PACKAGE}MgrPath) && $(BCAST_CMD) check
Index: /CMT/HEAD/mgr/fragments/nmake/packages_header
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/packages_header	(revision 598)
+++ /CMT/HEAD/mgr/fragments/nmake/packages_header	(revision 599)
@@ -2,5 +2,5 @@
 
 #!include $(CMTROOT)\src\NMakefile.core
-#!include $(cmt_broadcast_tagfile)
+!include $(cmt_broadcast_tagfile)
 
 !if "$(BCAST_CMD)" == ""
Index: /CMT/HEAD/mgr/fragments/package
===================================================================
--- /CMT/HEAD/mgr/fragments/package	(revision 598)
+++ /CMT/HEAD/mgr/fragments/package	(revision 599)
@@ -22,10 +22,10 @@
 ifdef cmt_${PACKAGE}_is_local
 	@echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"
 ifdef LOG_LOCATION
-	$(silent) touch $(LOG_LOCATION)/$(${PACKAGE}FullName)$(LOG_SUFFIX)
+	$(silent) > $(LOG_LOCATION)/$(${PACKAGE}FullName)$(LOG_SUFFIX)
 	@{ echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"; } $(${PACKAGE}OutErr)
 endif
@@ -43,10 +43,10 @@
 ifdef BCAST_GLOBAL
 	@echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"
 ifdef LOG_LOCATION
-	$(silent) touch $(LOG_LOCATION)/$(${PACKAGE}FullName)$(LOG_SUFFIX)
+	$(silent) > $(LOG_LOCATION)/$(${PACKAGE}FullName)$(LOG_SUFFIX)
 	@{ echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD)] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"; } $(${PACKAGE}OutErr)
 endif
@@ -90,5 +90,5 @@
 ifdef cmt_${PACKAGE}_is_local
 	@echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD) $(patsubst ${PACKAGE}%,%,$@)] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD) $(patsubst ${PACKAGE}%,%,$@)] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"
 	+$(silent) cd $(${PACKAGE}MgrPath) && $(BCAST_CMD) $(patsubst ${PACKAGE}%,%,$@)
@@ -96,5 +96,5 @@
 ifdef BCAST_GLOBAL
 	@echo "#--------------------------------------------------------------" \
-	  && echo "# Now trying [$(BCAST_CMD) $(patsubst ${PACKAGE}%,%,$@)] in $(${PACKAGE}MgrPath)" \
+	  && echo "# ${PACKAGE} $(${PACKAGEPREFIX}VERSION) $(${PACKAGE}_offset): Now trying [$(BCAST_CMD) $(patsubst ${PACKAGE}%,%,$@)] in $(${PACKAGE}MgrPath)" \
 	  && echo "#--------------------------------------------------------------"
 	+$(silent) cd $(${PACKAGE}MgrPath) && $(BCAST_CMD) $(patsubst ${PACKAGE}%,%,$@)
Index: /CMT/HEAD/mgr/fragments/packages_header
===================================================================
--- /CMT/HEAD/mgr/fragments/packages_header	(revision 598)
+++ /CMT/HEAD/mgr/fragments/packages_header	(revision 599)
@@ -2,4 +2,20 @@
 
 include ${CMTROOT}/src/Makefile.core
+
+#
+#  Basic tag management
+#
+ifdef tag
+CMTEXTRATAGS = $(tag)
+else
+tag       = $(CMTCONFIG)
+endif
+
+tags      = $(tag),$(CMTEXTRATAGS)
+
+#cmt_local_tagfile = $(bin)$(tag).make
+cmt_broadcast_tagfile = $(bin)$(tag)_broadcast.make
+
+include $(cmt_broadcast_tagfile)
 
 ifndef BCAST_CMD
@@ -54,7 +70,13 @@
 #--------------------------------------------------------
 
+${CMTROOT}/src/Makefile.core : ;
+$(cmt_broadcast_tagfile) : ;
+ifdef use_requirements
+$(use_requirements) : ;
+endif
+
 ifndef PEDANTIC
 .DEFAULT :
-	$(echo) "(uses.make) $@: No rule for such target" >&2
+	$(echo) "(packages) $@: No rule for such target" >&2
 endif
 
Index: /CMT/HEAD/source/cmt_commands.cxx
===================================================================
--- /CMT/HEAD/source/cmt_commands.cxx	(revision 598)
+++ /CMT/HEAD/source/cmt_commands.cxx	(revision 599)
@@ -1014,5 +1014,6 @@
 void ArgParser::do_create ()
 {
-  if (argc > 0)
+  if (argc >= 2)
+    //if (argc > 0)
     {
       fill_arguments ();
@@ -1021,6 +1022,6 @@
   else
     {
-      CmtMessage::error ("syntax: create arguments missing");
-      //      if (!cmt.m_quiet) cerr << "#CMT> syntax error : create arguments missing" << endl;
+      CmtError::set (CmtError::syntax_error, "arguments missing");
+      //CmtMessage::error ("syntax: create arguments missing");
       help_action = action_help;
       cmt.m_action = action_create;
Index: /CMT/HEAD/source/cmt_generators.cxx
===================================================================
--- /CMT/HEAD/source/cmt_generators.cxx	(revision 598)
+++ /CMT/HEAD/source/cmt_generators.cxx	(revision 599)
@@ -2913,4 +2913,5 @@
 
 	  m_PACKAGE = use->get_package_name ();
+	  m_PACKAGEPREFIX = use->prefix;
 
 	  Use::UsePtrVector subuses;
@@ -2944,6 +2945,7 @@
 	    }
 
-	  if (!package_fragment.copy (m_output_file, 5,
-				      &m_PACKAGE, &m_DEPENDENCIES,
+	  if (!package_fragment.copy (m_output_file, 6,
+				      &m_PACKAGE, &m_PACKAGEPREFIX,
+				      &m_DEPENDENCIES,
 				      &m_PACKAGEMGRPATH, &m_PACKAGEFULLNAME,
 				      &m_ISLOCAL)) return;
Index: /CMT/HEAD/source/cmt_parser.cxx
===================================================================
--- /CMT/HEAD/source/cmt_parser.cxx	(revision 598)
+++ /CMT/HEAD/source/cmt_parser.cxx	(revision 599)
@@ -2554,5 +2554,6 @@
 // 	symbol->show_macro (Make, t);
 //      const cmt_string pattern = "^use_requirements$|.*_root$|.*_cmtpath$|.*_offset$";
-      const cmt_string pattern = "^use_requirements$|.*_root$";
+//      const cmt_string pattern = "^use_requirements$|.*_root$";
+      const cmt_string pattern = "^use_requirements$|.*_root$|.*_offset$|.*VERSION$";
       print_macros (Make, pattern, t);
       t.close (); // ios_base::failbit
Index: /CMT/HEAD/source/cmt_symbol.cxx
===================================================================
--- /CMT/HEAD/source/cmt_symbol.cxx	(revision 598)
+++ /CMT/HEAD/source/cmt_symbol.cxx	(revision 599)
@@ -3134,14 +3134,18 @@
   else define_text = "overrides";
 
-  cout << "# Package ";
+  if (CmtMessage::active (Verbose))
+    cout << "# Package " << (use != 0 ? use->get_package_name () + " " + use->version : "");
+  /*
   if (use != 0)
     {
       cout << use->get_package_name () << " " << use->version;
     }
+  */
 
   switch (command_type)
     {
       case CommandSet :
-        cout << " " << define_text << " set " << symbol.name << " as " << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " " << define_text << " set " << symbol.name << " as " << endl;
 	//        cout << " " << define_text << " set " << symbol.name << " as ";
         cout << "set " << symbol.name;
@@ -3150,5 +3154,6 @@
         break;
       case CommandSetAppend :
-        cout << " appends to set " << symbol.name << " : " << endl;;
+	if (CmtMessage::active (Verbose))
+	  cout << " appends to set " << symbol.name << " : " << endl;
 	//        cout << " appends to set " << symbol.name << " : ";
         cout << "set_append " << symbol.name;
@@ -3156,5 +3161,6 @@
         break;
       case CommandSetPrepend :
-        cout << " prepends to set " << symbol.name << " : " << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " prepends to set " << symbol.name << " : " << endl;
 	//        cout << " prepends to set " << symbol.name << " : ";
         cout << "set_prepend " << symbol.name;
@@ -3162,5 +3168,6 @@
         break;
       case CommandSetRemove :
-        cout << " removes from set " << symbol.name << " : " << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " removes from set " << symbol.name << " : " << endl;
 	//        cout << " removes from set " << symbol.name << " : ";
         cout << "set_remove " << symbol.name;
@@ -3168,5 +3175,6 @@
         break;
       case CommandSetRemoveRegexp :
-        cout << " removes RE from set " << symbol.name << " : " << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " removes RE from set " << symbol.name << " : " << endl;
 	//        cout << " removes RE from set " << symbol.name << " : ";
         cout << "set_remove_regexp " << symbol.name;
@@ -3174,5 +3182,6 @@
         break;
       case CommandAlias :
-        cout << " " << define_text << " alias " << symbol.name << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " " << define_text << " alias " << symbol.name << endl;
 	//        cout << " " << define_text << " alias " << symbol.name << " as ";
         cout << "alias " << symbol.name;
@@ -3181,5 +3190,6 @@
         break;
       case CommandPath :
-        cout << " " << define_text << " path " << symbol.name << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " " << define_text << " path " << symbol.name << endl;
 	//        cout << " " << define_text << " path " << symbol.name << " as ";
         cout << "path " << symbol.name;
@@ -3188,5 +3198,6 @@
         break;
       case CommandPathAppend :
-        cout << " appends to path " << symbol.name << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " appends to path " << symbol.name << endl;
 	//        cout << " appends to path " << symbol.name << " : ";
         cout << "path_append " << symbol.name;
@@ -3194,5 +3205,6 @@
         break;
       case CommandPathPrepend :
-        cout << " prepends to path " << symbol.name << " : " << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " prepends to path " << symbol.name << " : " << endl;
 	//        cout << " prepends to path " << symbol.name << " : ";
         cout << "path_prepend " << symbol.name;
@@ -3200,5 +3212,6 @@
         break;
       case CommandPathRemove :
-        cout << " removes from path " << symbol.name << " : " << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " removes from path " << symbol.name << " : " << endl;
 	//        cout << " removes from path " << symbol.name << " : ";
         cout << "path_remove " << symbol.name;
@@ -3206,5 +3219,6 @@
         break;
       case CommandPathRemoveRegexp :
-        cout << " removes RE from path " << symbol.name << " : " << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " removes RE from path " << symbol.name << " : " << endl;
 	//        cout << " removes RE from path " << symbol.name << " : ";
         cout << "path_remove_regexp " << symbol.name;
@@ -3212,5 +3226,6 @@
         break;
       case CommandMacro :
-        cout << " " << define_text << " macro " << symbol.name << " as " << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " " << define_text << " macro " << symbol.name << " as " << endl;
 	//        cout << " " << define_text << " macro " << symbol.name << " as ";
         cout << "macro " << symbol.name;
@@ -3218,5 +3233,6 @@
         break;
       case CommandMacroPrepend :
-        cout << " prepends to macro " << symbol.name << " : " << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " prepends to macro " << symbol.name << " : " << endl;
 	//        cout << " prepends to macro " << symbol.name << " : ";
         cout << "macro_prepend " << symbol.name;
@@ -3224,5 +3240,6 @@
         break;
       case CommandMacroAppend :
-        cout << " appends to macro " << symbol.name << " : " << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " appends to macro " << symbol.name << " : " << endl;
 	//        cout << " appends to macro " << symbol.name << " : ";
         cout << "macro_append " << symbol.name;
@@ -3230,5 +3247,6 @@
         break;
       case CommandMacroRemove :
-        cout << " remove from macro " << symbol.name << " : " << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " remove from macro " << symbol.name << " : " << endl;
 	//        cout << " remove from macro " << symbol.name << " : ";
         cout << "macro_remove " << symbol.name;
@@ -3236,5 +3254,6 @@
         break;
       case CommandMacroRemoveRegexp :
-        cout << " remove RE from macro " << symbol.name << " : " << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " remove RE from macro " << symbol.name << " : " << endl;
 	//        cout << " remove RE from macro " << symbol.name << " : ";
         cout << "macro_remove_regexp " << symbol.name;
@@ -3242,5 +3261,6 @@
         break;
       case CommandMacroRemoveAll :
-        cout << " remove all from macro " << symbol.name << " : " << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " remove all from macro " << symbol.name << " : " << endl;
 	//        cout << " remove all from macro " << symbol.name << " : ";
         cout << "macro_remove_all " << symbol.name;
@@ -3248,5 +3268,6 @@
         break;
       case CommandMacroRemoveAllRegexp :
-        cout << " remove all RE from macro " << symbol.name << " : " << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " remove all RE from macro " << symbol.name << " : " << endl;
 	//        cout << " remove all RE from macro " << symbol.name << " : ";
         cout << "macro_remove_all_regexp " << symbol.name;
@@ -3254,5 +3275,6 @@
         break;
       case CommandSetupScript :
-        cout << " " << define_text << " setup script " << symbol.name << endl;
+	if (CmtMessage::active (Verbose))
+	  cout << " " << define_text << " setup script " << symbol.name << endl;
 	//       cout << " " << define_text << " action " << symbol.name << " as ";
         cout << "setup_script" /* << symbol.name */;
Index: /CMT/HEAD/source/cmt_system.cxx
===================================================================
--- /CMT/HEAD/source/cmt_system.cxx	(revision 598)
+++ /CMT/HEAD/source/cmt_system.cxx	(revision 599)
@@ -20,5 +20,5 @@
 #define S_IFDIR _S_IFDIR
 #define USE_GETCWD 1
-
+#define cwd_env_var "CD"
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -28,6 +28,8 @@
 
 #define stat _stat
+#define unlink _unlink
+#define chmod _chmod
+//#define putenv _putenv
 #define WEXITSTATUS(w) (w)
-#include <stdlib.h>
 #define PATH_MAX _MAX_PATH
 
@@ -40,4 +42,5 @@
 #include <sys/utsname.h>
 #include <limits.h> // define PATH_MAX
+#define cwd_env_var "PWD"
 #endif
 
@@ -79,5 +82,5 @@
   char* pwd_env = 0;
 
-  pwd_env = ::getenv (cwd_variable ());  
+  pwd_env = ::getenv (cwd_env_var);  
   //  pwd_env = ::getenv ("PWD");  
 
@@ -157,5 +160,5 @@
     {
 #ifndef WIN32
-      if (putenv (cwd_variable (), s_dir))
+      if (putenv (cwd_env_var, s_dir))
 	//      if (putenv ("PWD", s_dir))
 	return (true);
@@ -739,4 +742,5 @@
 
 //--------------------------------------------------
+/*
 char CmtSystem::file_separator ()
 {
@@ -747,5 +751,5 @@
 #endif
 }
-
+*/
 /**
  *  Transform all / or \ characters in the text into the current file_separator
@@ -773,4 +777,5 @@
 
 //--------------------------------------------------
+/*
 char CmtSystem::path_separator ()
 {
@@ -781,6 +786,7 @@
 #endif
 }
-
+*/
 //--------------------------------------------------
+ /*
 char CmtSystem::command_separator ()
 {
@@ -791,5 +797,6 @@
 #endif
 }
-
+ */
+/*
 //--------------------------------------------------
 const char * CmtSystem::cwd_variable ()
@@ -801,5 +808,5 @@
 #endif
 }
-
+*/
 //--------------------------------------------------
 const cmt_string& CmtSystem::ev_open ()
@@ -1550,5 +1557,9 @@
     //cerr << "#CmtSystem::putenv> name=" << name << " &v=" << &v << endl;
 
+#ifdef WIN32
+    int status = ::_putenv ((char*) v.c_str ());
+#else
     int status = ::putenv ((char*) v.c_str ());
+#endif
 
     if (status == 0) return (true);
Index: /CMT/HEAD/source/cmt_system.h
===================================================================
--- /CMT/HEAD/source/cmt_system.h	(revision 598)
+++ /CMT/HEAD/source/cmt_system.h	(revision 599)
@@ -80,9 +80,30 @@
                                         const cmt_string& name2);
   static int file_size (const cmt_string& name);
-  static char file_separator ();
+  inline static char file_separator ()
+    {
+#ifdef WIN32
+      return ('\\');
+#else
+      return ('/');
+#endif
+    }
   static void reduce_file_separators (cmt_string& text);
-  static char path_separator ();
-  static char command_separator ();
-  static const char* cwd_variable ();
+  inline static char path_separator ()
+    {
+#ifdef WIN32
+      return (';');
+#else
+      return (':');
+#endif
+    }
+  inline static char command_separator ()
+    {
+#ifdef WIN32
+      return ('&');
+#else
+      return (';');
+#endif
+    }
+  //static const char* cwd_variable ();
   static const cmt_string& ev_open ();
   static const cmt_string& ev_close ();
