Index: /CMT/HEAD/ChangeLog
===================================================================
--- /CMT/HEAD/ChangeLog	(revision 468)
+++ /CMT/HEAD/ChangeLog	(revision 469)
@@ -1,2 +1,41 @@
+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
 	
@@ -5,5 +44,5 @@
 	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 $(${CONSTITUENT}linkopts)
+	$(${CONSTITUENT}_use_linkopts) instead of $(use_linkopts)
 	* mgr/fragments/dsp_application_header: idem
 	* mgr/fragments/dsp_windows_header: idem
Index: /CMT/HEAD/mgr/VisualC.nmake
===================================================================
--- /CMT/HEAD/mgr/VisualC.nmake	(revision 468)
+++ /CMT/HEAD/mgr/VisualC.nmake	(revision 469)
@@ -1,5 +1,7 @@
 CMT_tag=$(tag) 
-CMT_root=Z:\user\g\grybkine\maxidisk\Labs\devel\CMT\HEAD 
+CMT_root=Y:\user\g\grybkine\labs\CMT\HEAD 
 CMTVERSION=HEAD 
+CMT_project=grybkine 
+CMT_project_release=labs 
 cmt_hardware_query_command=uname -m 
 cmt_hardware=WIN32 
@@ -32,9 +34,9 @@
 shlibbuilder= $(cmt_installarea_linkopts)  
 library_install_command=copy  
-build_library_links=$(cmtexe) build library_links -quiet -tag=$(tags) 
-remove_library_links=$(cmtexe) remove library_links -quiet -tag=$(tags) 
+build_library_links=$(cmtexe) build library_links -tag=$(tags) 
+remove_library_links=$(cmtexe) remove library_links -tag=$(tags) 
 cmtexe=$(CMTROOT)\$(CMTBIN)\cmt.exe 
 build_prototype=$(cmtexe) build prototype 
-build_dependencies=$(cmtexe) -quiet -tag=$(tags) build dependencies 
+build_dependencies=$(cmtexe) -tag=$(tags) build dependencies 
 build_triggers=$(cmtexe) build triggers 
 implied_library_prefix=-l 
@@ -80,8 +82,26 @@
 srcdir=..\src 
 bin=..\$(CMT_tag)\ 
+BIN=Y:\user\g\grybkine\labs\CMT\HEAD\$(CMT_tag)\ 
 javabin=..\classes\ 
 mgrdir=mgr 
-cmt_installarea_paths= $(cmt_installarea_prefix)/$(CMTCONFIG)/bin 
-use_linkopts= $(cmt_installarea_linkopts)  
+project=grybkine 
+cmt_installarea_paths= $(cmt_installarea_prefix)/$(CMTCONFIG)/bin $(grybkine_installarea_prefix)/$(CMTCONFIG)/lib $(grybkine_installarea_prefix)/share/lib $(grybkine_installarea_prefix)/share/bin 
+use_linkopts= $(cmt_installarea_linkopts)   $(CMT_linkopts)  
+grybkine_installarea_prefix=$(cmt_installarea_prefix) 
+grybkine_installarea_prefix_remove=$(grybkine_installarea_prefix) 
+cmt_installarea_linkopts= /LIBPATH:Y:\user\g\grybkine\labs\$(grybkine_installarea_prefix)\$(CMTCONFIG)\lib  
+CMTINSTALLAREA=Y:\user\g\grybkine\labs\$(cmt_installarea_prefix) 
+use_requirements=requirements  
+use_includes=  
+use_fincludes= $(use_includes) 
+use_stamps= $(CMT_stamps)  
+use_cflags=  $(CMT_cflags)  
+use_pp_cflags=  $(CMT_pp_cflags)  
+use_cppflags=  $(CMT_cppflags)  
+use_pp_cppflags=  $(CMT_pp_cppflags)  
+use_fflags=  $(CMT_fflags)  
+use_pp_fflags=  $(CMT_pp_fflags)  
+includes= $(ppcmd)"$(srcdir)" $(use_includes) 
+fincludes= $(includes) 
 cmt_use_linkopts=  $(CMT_linkopts)  
 constituents= cmt  
Index: /CMT/HEAD/mgr/cmt_dependencies.nmake
===================================================================
--- /CMT/HEAD/mgr/cmt_dependencies.nmake	(revision 468)
+++ /CMT/HEAD/mgr/cmt_dependencies.nmake	(revision 469)
@@ -1,30 +1,30 @@
 cmt_cxx_dependencies = "..\source\cmt.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_parser.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h"
-cmt_awk_cxx_dependencies = "..\source\cmt_awk.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_regexp.h" "..\source\cmt_awk.h" "..\source\cmt_vector.h" "..\source\cmt_system.h"
+cmt_awk_cxx_dependencies = "..\source\cmt_awk.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_regexp.h" "..\source\cmt_awk.h" "..\source\cmt_vector.h" "..\source\cmt_system.h" "..\source\cmt_log.h" "..\source\cmt_map.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h"
 cmt_branch_cxx_dependencies = "..\source\cmt_branch.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_branch.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_map.h" "..\source\cmt_pattern.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h"
-cmt_constituent_cxx_dependencies = "..\source\cmt_constituent.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_awk.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_deps_builder.h" "..\source\cmt_generator.h" "..\source\cmt_branch.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h"
+cmt_constituent_cxx_dependencies = "..\source\cmt_constituent.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_awk.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_deps_builder.h" "..\source\cmt_generator.h" "..\source\cmt_branch.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h" "..\source\cmt_log.h"
 cmt_deps_builder_cxx_dependencies = "..\source\cmt_deps_builder.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_parser.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_deps_builder.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_log.h"
-cmt_fragment_cxx_dependencies = "..\source\cmt_fragment.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_fragment.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_branch.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h"
-cmt_generator_cxx_dependencies = "..\source\cmt_generator.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_awk.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_deps_builder.h" "..\source\cmt_generator.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_generators.h"
+cmt_fragment_cxx_dependencies = "..\source\cmt_fragment.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_fragment.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_branch.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h" "..\source\cmt_log.h"
+cmt_generator_cxx_dependencies = "..\source\cmt_generator.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_awk.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_deps_builder.h" "..\source\cmt_generator.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_generators.h" "..\source\cmt_log.h"
 cmt_include_cxx_dependencies = "..\source\cmt_include.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_include.h" "..\source\cmt_map.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_log.h"
 cmt_parser_cxx_dependencies = "..\source\cmt_parser.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_version.h" "..\source\cmt_branch.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_map.h" "..\source\cmt_pattern.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h" "..\source\cmt_deps_builder.h" "..\source\cmt_generator.h" "..\source\cmt_error.h" "..\source\cmt_cvs.h" "..\source\cmt_lock.h" "..\source\cmt_triggers.h" "..\source\cmt_model.h" "..\source\cmt_syntax.h" "..\source\cmt_install_area.h" "..\source\cmt_sequence.h" "..\source\cmt_log.h" "..\source\cmt_commands.h"
 cmt_script_cxx_dependencies = "..\source\cmt_script.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_script.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h"
 cmt_string_cxx_dependencies = "..\source\cmt_string.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h"
-cmt_system_cxx_dependencies = "..\source\cmt_system.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt_error.h" "..\source\cmt_map.h"
+cmt_system_cxx_dependencies = "..\source\cmt_system.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt_error.h" "..\source\cmt_map.h" "..\source\cmt_log.h"
 cmt_tag_cxx_dependencies = "..\source\cmt_tag.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_branch.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_symbol.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h" "..\source\cmt_log.h"
-cmt_use_cxx_dependencies = "..\source\cmt_use.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_map.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_error.h" "..\source\cmt_branch.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h" "..\source\cmt_syntax.h"
-cmt_symbol_cxx_dependencies = "..\source\cmt_symbol.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_map.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_branch.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h"
-cmt_error_cxx_dependencies = "..\source\cmt_error.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_error.h" "..\source\cmt_vector.h"
-cmt_pattern_cxx_dependencies = "..\source\cmt_pattern.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_parser.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_map.h" "..\source\cmt_pattern.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_branch.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h" "..\source\cmt_error.h" "..\source\cmt_syntax.h"
+cmt_use_cxx_dependencies = "..\source\cmt_use.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_map.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_error.h" "..\source\cmt_branch.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h" "..\source\cmt_syntax.h" "..\source\cmt_log.h"
+cmt_symbol_cxx_dependencies = "..\source\cmt_symbol.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_map.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_branch.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h" "..\source\cmt_log.h"
+cmt_error_cxx_dependencies = "..\source\cmt_error.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_error.h" "..\source\cmt_vector.h" "..\source\cmt_log.h"
+cmt_pattern_cxx_dependencies = "..\source\cmt_pattern.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_parser.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_map.h" "..\source\cmt_pattern.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_branch.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h" "..\source\cmt_error.h" "..\source\cmt_syntax.h" "..\source\cmt_log.h"
 cmt_language_cxx_dependencies = "..\source\cmt_language.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_fragment.h" "..\source\cmt_language.h" "..\source\cmt_branch.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_map.h" "..\source\cmt_pattern.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h"
-cmt_cvs_cxx_dependencies = "..\source\cmt_cvs.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_parser.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_cvs.h" "..\source\cmt_awk.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_project.h"
+cmt_cvs_cxx_dependencies = "..\source\cmt_cvs.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_parser.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_cvs.h" "..\source\cmt_awk.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_project.h" "..\source\cmt_log.h"
 cmt_group_cxx_dependencies = "..\source\cmt_group.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_group.h" "..\source\cmt_branch.h" "..\source\cmt_fragment.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_map.h" "..\source\cmt_pattern.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h"
 cmt_database_cxx_dependencies = "..\source\cmt_database.cxx" "..\source\cmt_vector.h" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_branch.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_map.h" "..\source\cmt_pattern.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h"
-cmt_lock_cxx_dependencies = "..\source\cmt_lock.cxx" "..\source\cmt_std.h" "..\source\cmt_lock.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt_error.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h"
-cmt_triggers_cxx_dependencies = "..\source\cmt_triggers.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_triggers.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt_awk.h" "..\source\cmt_map.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_project.h" "..\source\cmt_syntax.h"
+cmt_lock_cxx_dependencies = "..\source\cmt_lock.cxx" "..\source\cmt_std.h" "..\source\cmt_lock.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt_error.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_log.h"
+cmt_triggers_cxx_dependencies = "..\source\cmt_triggers.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_triggers.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt_awk.h" "..\source\cmt_map.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_project.h" "..\source\cmt_syntax.h" "..\source\cmt_log.h"
 cmt_regexp_cxx_dependencies = "..\source\cmt_regexp.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_regexp.h" "..\source\cmt_vector.h" "..\source\cmt_system.h"
-cmt_model_cxx_dependencies = "..\source\cmt_model.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt_model.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_fragment.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h"
-cmt_project_cxx_dependencies = "..\source\cmt_project.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_branch.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h" "..\source\cmt_syntax.h" "..\source\cmt_error.h"
-cmt_syntax_cxx_dependencies = "..\source\cmt_syntax.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_map.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_syntax.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_error.h" "..\source\cmt_branch.h" "..\source\cmt_language.h" "..\source\cmt_cmtpath_pattern.h"
-cmt_install_area_cxx_dependencies = "..\source\cmt_install_area.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt_parser.h" "..\source\cmt.h" "..\source\cmt_install_area.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_syntax.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_cmtpath_pattern.h"
+cmt_model_cxx_dependencies = "..\source\cmt_model.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt_model.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_fragment.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_log.h"
+cmt_project_cxx_dependencies = "..\source\cmt_project.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_branch.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h" "..\source\cmt_syntax.h" "..\source\cmt_error.h" "..\source\cmt_log.h"
+cmt_syntax_cxx_dependencies = "..\source\cmt_syntax.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_map.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_syntax.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_error.h" "..\source\cmt_branch.h" "..\source\cmt_language.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_log.h"
+cmt_install_area_cxx_dependencies = "..\source\cmt_install_area.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt_parser.h" "..\source\cmt.h" "..\source\cmt_install_area.h" "..\source\cmt_map.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_syntax.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_log.h"
 cmt_cmtpath_pattern_cxx_dependencies = "..\source\cmt_cmtpath_pattern.cxx" "..\source\cmt_vector.h" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_branch.h" "..\source\cmt_fragment.h" "..\source\cmt_group.h" "..\source\cmt_constituent.h" "..\source\cmt_language.h" "..\source\cmt_map.h" "..\source\cmt_pattern.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_cmtpath_pattern.h" "..\source\cmt_database.h" "..\source\cmt_syntax.h"
 cmt_sequence_cxx_dependencies = "..\source\cmt_sequence.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_regexp.h" "..\source\cmt_awk.h" "..\source\cmt_sequence.h" "..\source\cmt_vector.h" "..\source\cmt_system.h"
@@ -32,3 +32,3 @@
 cmt_scope_section_cxx_dependencies = "..\source\cmt_scope_section.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_parser.h" "..\source\cmt_scope_section.h"
 cmt_log_cxx_dependencies = "..\source\cmt_log.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_log.h" "..\source\cmt_vector.h" "..\source\cmt_parser.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h"
-cmt_commands_cxx_dependencies = "..\source\cmt_commands.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_map.h" "..\source\cmt_parser.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_commands.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_awk.h" "..\source\cmt_project.h"
+cmt_commands_cxx_dependencies = "..\source\cmt_commands.cxx" "..\source\cmt_std.h" "..\source\cmt_string.h" "..\source\cmt_vector.h" "..\source\cmt_map.h" "..\source\cmt_parser.h" "..\source\cmt_regexp.h" "..\source\cmt_system.h" "..\source\cmt.h" "..\source\cmt_commands.h" "..\source\cmt_include.h" "..\source\cmt_script.h" "..\source\cmt_pattern.h" "..\source\cmt_scope_section.h" "..\source\cmt_use.h" "..\source\cmt_tag.h" "..\source\cmt_symbol.h" "..\source\cmt_awk.h" "..\source\cmt_project.h" "..\source\cmt_log.h"
Index: /CMT/HEAD/mgr/cmt_make_shlib.bat
===================================================================
--- /CMT/HEAD/mgr/cmt_make_shlib.bat	(revision 468)
+++ /CMT/HEAD/mgr/cmt_make_shlib.bat	(revision 469)
@@ -4,5 +4,9 @@
 
 rem #
-set bin=..\%1%
+rem set bin=..\%1%
+
+if not defined bin (
+  for /f "usebackq" %%i in (`cmt show macro_value bin`) do set bin=%%i
+)
 set name=%2%
 
Index: /CMT/HEAD/mgr/cmt_make_shlib_common.sh
===================================================================
--- /CMT/HEAD/mgr/cmt_make_shlib_common.sh	(revision 468)
+++ /CMT/HEAD/mgr/cmt_make_shlib_common.sh	(revision 469)
@@ -7,10 +7,11 @@
 #  Syntax :
 #
-#  cmt_make_shlib_common.sh extract-arg package extra-args
+#  cmt_make_shlib_common.sh extract-arg tag library extra-args
 #
 #   with :
 #
 #      extract-arg  : either "extract" or "no_extract"
-#      package      : the current package name
+#      tag          : the current tag(s)
+#      library      : the name of the library
 #      extra-args   : extra link options
 #
@@ -28,6 +29,4 @@
 extra=$*
 
-here=`/bin/pwd`
-
 ld=`${CMTROOT}/mgr/cmt show macro_value shlibbuilder -tag=${tag}`
 ldflags=`${CMTROOT}/mgr/cmt show macro_value shlibflags -tag=${tag}`
@@ -36,9 +35,17 @@
 libsuffix=`${CMTROOT}/mgr/cmt show macro_value library_suffix -tag=${tag}`
 
+libname=${libprefix}${lib}${libsuffix}
+
 if test "${ld}" = "" ; then
   exit 1
 fi
 
-libname=${libprefix}${lib}${libsuffix}
+if test "${bin}" = "" ; then
+  bin=`${CMTROOT}/mgr/cmt show macro_value bin -tag=${tag}`
+fi
+
+here=`/bin/pwd`
+cd ${bin}
+
 /bin/rm -f ${libname}.${suffix}
 
@@ -48,5 +55,5 @@
 
 if test ${extract} = "extract"; then
-  trap 'cd ${here}; /bin/rm -rf ${temp_shlib}; exit ${result}' 0 1 2 15
+  trap '/bin/rm -rf ${temp_shlib}; cd ${here}; exit ${result}' 1 2 15
 
   mkdir -p ${temp_shlib}
@@ -68,4 +75,5 @@
 
   if test "${QUIET}" = ""; then set -v; fi
+
   eval ${ld} ${ldflags} -o ${libname}.${suffix} ${modules} ${extra}
   result=$?
@@ -86,5 +94,4 @@
 fi
 
-
-
-
+cd ${here}
+exit ${result}
Index: /CMT/HEAD/mgr/fragments/application
===================================================================
--- /CMT/HEAD/mgr/fragments/application	(revision 468)
+++ /CMT/HEAD/mgr/fragments/application	(revision 469)
@@ -3,5 +3,5 @@
 $(bin)${CONSTITUENT}${application_suffix} :: ${OBJS} $(use_stamps) $(${CONSTITUENT}stamps) requirements $(use_requirements)
 	$(link_echo) "application $@"
-	$(link_silent) cd $(bin); ${LINKMACRO} -o ${CONSTITUENT}.exe.new ${OBJS} $(cmt_installarea_linkopts) $(${CONSTITUENT}_use_linkopts) $(${CONSTITUENT}linkopts); mv -f ${CONSTITUENT}.exe.new ${CONSTITUENT}${application_suffix}
+	$(link_silent) ${LINKMACRO} -o $(@).new ${OBJS} $(cmt_installarea_linkopts) $(${CONSTITUENT}_use_linkopts) $(${CONSTITUENT}linkopts) && mv -f $(@).new $(@)
 
 #-----------------------------------------------------------------
Index: /CMT/HEAD/mgr/fragments/c
===================================================================
--- /CMT/HEAD/mgr/fragments/c	(revision 468)
+++ /CMT/HEAD/mgr/fragments/c	(revision 469)
@@ -4,6 +4,7 @@
 
 $(bin)${NAME}${CONSTITUENTSUFFIX}.o : $(${NAME}_${FILESUFFIX}_dependencies)
-	$(c_echo) $<
-	$(c_silent) cd $(bin); $(ccomp) -o ${NAME}${CONSTITUENTSUFFIX}.o $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(app_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(app_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} ${FULLNAME}
+	$(c_echo) ${FULLNAME}
+	$(c_silent) $(ccomp) -o $@ $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(app_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(app_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} ${FULLNAME}
+#	$(c_silent) cd $(bin); $(ccomp) -o ${NAME}${CONSTITUENTSUFFIX}.o $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(app_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(app_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} ${FULLNAME}
 
 #-- end of c ------
Index: /CMT/HEAD/mgr/fragments/c_library
===================================================================
--- /CMT/HEAD/mgr/fragments/c_library	(revision 468)
+++ /CMT/HEAD/mgr/fragments/c_library	(revision 469)
@@ -4,6 +4,7 @@
 
 $(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.o : $(${NAME}_${FILESUFFIX}_dependencies)
-	$(c_echo) $<
-	$(c_silent) cd $(bin); $(ccomp) -o $(binobj)${NAME}${CONSTITUENTSUFFIX}.o $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(lib_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(lib_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} ${FULLNAME}
+	$(c_echo) ${FULLNAME}
+	$(c_silent) $(ccomp) -o $@ $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(lib_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(lib_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} ${FULLNAME}
+#	$(c_silent) cd $(bin); $(ccomp) -o $(binobj)${NAME}${CONSTITUENTSUFFIX}.o $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(lib_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(lib_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} ${FULLNAME}
 
 #-- end of c_library ------
Index: /CMT/HEAD/mgr/fragments/cleanup_objects
===================================================================
--- /CMT/HEAD/mgr/fragments/cleanup_objects	(revision 468)
+++ /CMT/HEAD/mgr/fragments/cleanup_objects	(revision 469)
@@ -1,5 +1,5 @@
 #-- start of cleanup_objects ------
 	$(cleanup_echo) objects
-	-$(cleanup_silent) cd $(bin); /bin/rm -f ${OBJS}
+	-$(cleanup_silent) /bin/rm -f ${OBJS}
 	-$(cleanup_silent) cd $(bin); /bin/rm -rf ${CONSTITUENT}_deps ${CONSTITUENT}_dependencies.make
 #-- end of cleanup_objects ------
Index: /CMT/HEAD/mgr/fragments/cpp
===================================================================
--- /CMT/HEAD/mgr/fragments/cpp	(revision 468)
+++ /CMT/HEAD/mgr/fragments/cpp	(revision 469)
@@ -4,6 +4,6 @@
 
 $(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.o : $(${NAME}_${FILESUFFIX}_dependencies)
-	$(cpp_echo) $<
-	$(cpp_silent) cd $(bin); $(cppcomp) -o $(binobj)${NAME}${CONSTITUENTSUFFIX}.o $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(app_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(app_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} ${FULLNAME}
+	$(cpp_echo) ${FULLNAME}
+	$(cpp_silent) $(cppcomp) -o $(@) $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(app_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(app_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} ${FULLNAME}
 
 #-- end of cpp ------
Index: /CMT/HEAD/mgr/fragments/cpp_library
===================================================================
--- /CMT/HEAD/mgr/fragments/cpp_library	(revision 468)
+++ /CMT/HEAD/mgr/fragments/cpp_library	(revision 469)
@@ -4,6 +4,6 @@
 
 $(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.o : $(${NAME}_${FILESUFFIX}_dependencies)
-	$(cpp_echo) $<
-	$(cpp_silent) cd $(bin); $(cppcomp) -o $(binobj)${NAME}${CONSTITUENTSUFFIX}.o $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(lib_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(lib_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} ${FULLNAME}
+	$(cpp_echo) ${FULLNAME}
+	$(cpp_silent) $(cppcomp) -o $(@) $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(lib_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(lib_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} ${FULLNAME}
 
 #-- end of cpp_library ------------------
Index: /CMT/HEAD/mgr/fragments/dependencies
===================================================================
--- /CMT/HEAD/mgr/fragments/dependencies	(revision 468)
+++ /CMT/HEAD/mgr/fragments/dependencies	(revision 469)
@@ -7,5 +7,5 @@
 $(bin)${CONSTITUENT}_dependencies.make : ${LINE} $(use_requirements) $(cmt_final_setup_${CONSTITUENT})
 	$(echo) "(${CONSTITUENT}.make) Rebuilding $@"; \
-	  $(build_dependencies) ${CONSTITUENT} -all_sources
+	  $(build_dependencies) ${CONSTITUENT} -all_sources -out=$@
 endif
 
Index: /CMT/HEAD/mgr/fragments/fortran
===================================================================
--- /CMT/HEAD/mgr/fragments/fortran	(revision 468)
+++ /CMT/HEAD/mgr/fragments/fortran	(revision 469)
@@ -4,6 +4,7 @@
  
 $(bin)${NAME}${CONSTITUENTSUFFIX}.o : $(${NAME}_${FILESUFFIX}_dependencies)
-	$(fortran_echo) $<
-	$(fortran_silent)cd $(bin); $(fcomp) -o ${NAME}${CONSTITUENTSUFFIX}.o $(use_pp_fflags) $(${CONSTITUENT}_pp_fflags) $(app_${CONSTITUENT}_pp_fflags) $(${NAME}_pp_fflags) $(use_fflags) $(${CONSTITUENT}_fflags) $(app_${CONSTITUENT}_fflags) $(${NAME}_fflags) $(${NAME}_${FILESUFFIX}_fflags) ${ADDINCLUDE} ${FULLNAME}
+	$(fortran_echo) ${FULLNAME}
+	$(fortran_silent) $(fcomp) -o $@ $(use_pp_fflags) $(${CONSTITUENT}_pp_fflags) $(app_${CONSTITUENT}_pp_fflags) $(${NAME}_pp_fflags) $(use_fflags) $(${CONSTITUENT}_fflags) $(app_${CONSTITUENT}_fflags) $(${NAME}_fflags) $(${NAME}_${FILESUFFIX}_fflags) ${ADDINCLUDE} ${FULLNAME}
+#	$(fortran_silent)cd $(bin); $(fcomp) -o ${NAME}${CONSTITUENTSUFFIX}.o $(use_pp_fflags) $(${CONSTITUENT}_pp_fflags) $(app_${CONSTITUENT}_pp_fflags) $(${NAME}_pp_fflags) $(use_fflags) $(${CONSTITUENT}_fflags) $(app_${CONSTITUENT}_fflags) $(${NAME}_fflags) $(${NAME}_${FILESUFFIX}_fflags) ${ADDINCLUDE} ${FULLNAME}
 
 #-- end of fortran ------
Index: /CMT/HEAD/mgr/fragments/fortran_library
===================================================================
--- /CMT/HEAD/mgr/fragments/fortran_library	(revision 468)
+++ /CMT/HEAD/mgr/fragments/fortran_library	(revision 469)
@@ -4,6 +4,7 @@
  
 $(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.o : $(${NAME}_${FILESUFFIX}_dependencies)
-	$(fortran_echo) $<
-	$(fortran_silent)cd $(bin); $(fcomp) -o $(binobj)${NAME}${CONSTITUENTSUFFIX}.o $(use_pp_fflags) $(${CONSTITUENT}_pp_fflags) $(lib_${CONSTITUENT}_pp_fflags) $(${NAME}_pp_fflags) $(use_fflags) $(${CONSTITUENT}_fflags) $(lib_${CONSTITUENT}_fflags) $(${NAME}_fflags) $(${NAME}_${FILESUFFIX}_fflags) ${ADDINCLUDE} ${FULLNAME}
+	$(fortran_echo) ${FULLNAME}
+	$(fortran_silent) $(fcomp) -o $@ $(use_pp_fflags) $(${CONSTITUENT}_pp_fflags) $(lib_${CONSTITUENT}_pp_fflags) $(${NAME}_pp_fflags) $(use_fflags) $(${CONSTITUENT}_fflags) $(lib_${CONSTITUENT}_fflags) $(${NAME}_fflags) $(${NAME}_${FILESUFFIX}_fflags) ${ADDINCLUDE} ${FULLNAME}
+#	$(fortran_silent)cd $(bin); $(fcomp) -o $(binobj)${NAME}${CONSTITUENTSUFFIX}.o $(use_pp_fflags) $(${CONSTITUENT}_pp_fflags) $(lib_${CONSTITUENT}_pp_fflags) $(${NAME}_pp_fflags) $(use_fflags) $(${CONSTITUENT}_fflags) $(lib_${CONSTITUENT}_fflags) $(${NAME}_fflags) $(${NAME}_${FILESUFFIX}_fflags) ${ADDINCLUDE} ${FULLNAME}
 
 #-- end of fortran_library ------
Index: /CMT/HEAD/mgr/fragments/library
===================================================================
--- /CMT/HEAD/mgr/fragments/library	(revision 468)
+++ /CMT/HEAD/mgr/fragments/library	(revision 469)
@@ -6,6 +6,5 @@
 $(${CONSTITUENT}lib) :: ${OBJS}
 	$(lib_echo) "static library $@"
-	$(lib_silent) cd $(bin); \
-	  $(ar) $(${CONSTITUENT}lib) $?
+	$(lib_silent) $(ar) $(${CONSTITUENT}lib) $?
 	$(lib_silent) $(ranlib) $(${CONSTITUENT}lib)
 	$(lib_silent) cat /dev/null >$(${CONSTITUENT}stamp)
@@ -29,5 +28,5 @@
 $(${CONSTITUENT}libname).$(shlibsuffix) :: $(${CONSTITUENT}lib) requirements $(use_requirements) $(${CONSTITUENT}stamps)
 	$(lib_echo) "shared library $@"
-	$(lib_silent) cd $(bin); if test "$(makecmd)"; then QUIET=; else QUIET=1; fi; QUIET=$${QUIET} $(make_shlib) "$(tags)" ${CONSTITUENT} $(${CONSTITUENT}_shlibflags)
+	$(lib_silent) if test "$(makecmd)"; then QUIET=; else QUIET=1; fi; QUIET=$${QUIET} bin=$(bin) $(make_shlib) "$(tags)" ${CONSTITUENT} $(${CONSTITUENT}_shlibflags)
 
 $(${CONSTITUENT}shstamp) :: $(${CONSTITUENT}libname).$(shlibsuffix)
@@ -36,5 +35,5 @@
 ${CONSTITUENT}clean ::
 	$(cleanup_echo) objects
-	$(cleanup_silent) cd $(bin); /bin/rm -f ${OBJS}
+	$(cleanup_silent) /bin/rm -f ${OBJS}
 	$(cleanup_silent) cd $(bin); /bin/rm -rf ${CONSTITUENT}_deps ${CONSTITUENT}_dependencies.make
 
Index: /CMT/HEAD/mgr/fragments/library_no_share
===================================================================
--- /CMT/HEAD/mgr/fragments/library_no_share	(revision 468)
+++ /CMT/HEAD/mgr/fragments/library_no_share	(revision 469)
@@ -5,7 +5,6 @@
 
 $(${CONSTITUENT}lib) :: ${OBJS}
-	$(lib_echo) "library $@"
-	$(lib_silent) cd $(bin); \
-	  $(ar) $(${CONSTITUENT}lib) $?
+	$(lib_echo) "static library $@"
+	$(lib_silent) $(ar) $(${CONSTITUENT}lib) $?
 	$(lib_silent) $(ranlib) $(${CONSTITUENT}lib)
 	$(lib_silent) cat /dev/null >$(${CONSTITUENT}stamp)
@@ -63,5 +62,5 @@
 ${CONSTITUENT}clean ::
 	$(cleanup_echo) ${OBJS}
-	$(cleanup_silent) cd $(bin); /bin/rm -f ${OBJS}
+	$(cleanup_silent) /bin/rm -f ${OBJS}
 
 #-- end of library_no_share ------
Index: /CMT/HEAD/mgr/fragments/library_no_static
===================================================================
--- /CMT/HEAD/mgr/fragments/library_no_static	(revision 468)
+++ /CMT/HEAD/mgr/fragments/library_no_static	(revision 469)
@@ -28,10 +28,7 @@
 #
 
-#$(${CONSTITUENT}libname).$(shlibsuffix) :: $(${CONSTITUENT}lib) requirements $(use_requirements) $(${CONSTITUENT}stamps)
-#	$(lib_silent) cd $(bin); if test "$(makecmd)"; then QUIET=; else QUIET=1; fi; QUIET=$${QUIET} $(make_shlib) "$(tags)" ${CONSTITUENT} $(${CONSTITUENT}_shlibflags)
 $(${CONSTITUENT}libname).$(shlibsuffix) :: ${OBJS} $(use_requirements) $(${CONSTITUENT}stamps)
 	$(lib_echo) "shared library $@"
 	$(lib_silent) $(shlibbuilder) $(shlibflags) -o $@ ${OBJS} $(${CONSTITUENT}_shlibflags)
-#	$(lib_silent) cd $(bin); $(shlibbuilder) $(shlibflags) -o $(library_prefix)${CONSTITUENT}$(library_suffix).$(shlibsuffix) ${OBJS} $(${CONSTITUENT}_shlibflags)
 
 $(${CONSTITUENT}shstamp) :: $(${CONSTITUENT}libname).$(shlibsuffix)
@@ -40,5 +37,5 @@
 ${CONSTITUENT}clean ::
 	$(cleanup_echo) objects
-	$(cleanup_silent) cd $(bin); /bin/rm -f ${OBJS}
+	$(cleanup_silent) /bin/rm -f ${OBJS}
 	$(cleanup_silent) cd $(bin); /bin/rm -rf ${CONSTITUENT}_deps ${CONSTITUENT}_dependencies.make
 
Index: /CMT/HEAD/mgr/fragments/nmake/application
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/application	(revision 468)
+++ /CMT/HEAD/mgr/fragments/nmake/application	(revision 469)
@@ -1,2 +1,3 @@
+#-- start of application
 
 $(bin)${CONSTITUENT}$(application_suffix) :: ${OBJS} $(use_stamps) $(${CONSTITUENT}stamps) requirements $(use_requirements)
@@ -26,5 +27,5 @@
 !if "$(CMTINSTALLAREA)" != ""
 	$(install_echo) $(@F) into $(@D)
-	$(install_silent) $(cmt_install_action) "$(PACKAGE_ROOT)\$(tag)" "$(${CONSTITUENT}installname)" "$(install_dir)"
+	$(install_silent) $(cmt_install_action) "$(BIN)" "$(${CONSTITUENT}installname)" "$(install_dir)"
 !endif
 
@@ -36,5 +37,6 @@
 !if "$(CMTINSTALLAREA)" != ""
 	$(cleanup_echo) "$(${CONSTITUENT}installname)" from "$(install_dir)"
-	$(cleanup_silent) $(cmt_uninstall_action) "$(PACKAGE_ROOT)\$(tag)" "$(${CONSTITUENT}installname)" "$(install_dir)"
+	$(cleanup_silent) $(cmt_uninstall_action) "$(BIN)" "$(${CONSTITUENT}installname)" "$(install_dir)"
 !endif
 
+#-- end of application
Index: /CMT/HEAD/mgr/fragments/nmake/constituent
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/constituent	(revision 468)
+++ /CMT/HEAD/mgr/fragments/nmake/constituent	(revision 469)
@@ -7,5 +7,6 @@
 !if defined (cmt_${CONSTITUENT}_has_target_tag)
 
-cmt_local_tagfile_${CONSTITUENT} = $(${PACKAGE}_tag)_${CONSTITUENT}.nmake
+#cmt_local_tagfile_${CONSTITUENT} = $(${PACKAGE}_tag)_${CONSTITUENT}.nmake
+cmt_local_tagfile_${CONSTITUENT} = $(bin)$(${PACKAGE}_tag)_${CONSTITUENT}.nmake
 cmt_final_setup_${CONSTITUENT} = $(bin)${PACKAGE}_${CONSTITUENT}_setup.nmake
 cmt_local_${CONSTITUENT}_makefile = $(bin)${CONSTITUENT}.nmake
@@ -24,5 +25,6 @@
 !else
 
-cmt_local_tagfile_${CONSTITUENT} = $(${PACKAGE}_tag).nmake
+#cmt_local_tagfile_${CONSTITUENT} = $(${PACKAGE}_tag).nmake
+cmt_local_tagfile_${CONSTITUENT} = $(bin)$(${PACKAGE}_tag).nmake
 cmt_final_setup_${CONSTITUENT} = $(bin)${PACKAGE}_setup.nmake
 cmt_local_${CONSTITUENT}_makefile = $(bin)${CONSTITUENT}.nmake
@@ -34,6 +36,5 @@
 	@set include=$(include)
 	@set lib=$(lib)
-	@$(cmtexe) -tag=$(tags) $(${CONSTITUENT}_extratags) build -nmake constituent_makefile ${CONSTITUENT}
-	@move ${CONSTITUENT}.nmake $(bin)
+	@$(cmtexe) -tag=$(tags) $(${CONSTITUENT}_extratags) build -nmake constituent_makefile -out=$@ ${CONSTITUENT}
 	$(echo) (constituents.nmake) ${CONSTITUENT}.nmake done
 
@@ -42,5 +43,5 @@
 	@set include=$(include)
 	@set lib=$(lib)
-	@$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) build_strategy=keep_makefiles ${CONSTITUENT} tag=$(tag)
+	@$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles ${CONSTITUENT} tag=$(tag)
 	$(echo) (constituents.nmake) ${CONSTITUENT} done
 
@@ -51,5 +52,5 @@
 	@set include=$(include)
 	@set lib=$(lib)
-	@-if exist $(cmt_local_${CONSTITUENT}_makefile) $(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) build_strategy=keep_makefiles ${CONSTITUENT}clean tag=$(tag)
+	@-if exist $(cmt_local_${CONSTITUENT}_makefile) $(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles ${CONSTITUENT}clean tag=$(tag)
 	$(echo) (constituents.nmake) ${CONSTITUENT}clean done
 
@@ -60,5 +61,5 @@
 	@set include=$(include)
 	@set lib=$(lib)
-	@-$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) build_strategy=keep_makefiles install tag=$(tag)
+	@-$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles install tag=$(tag)
 	$(echo) (constituents.nmake) install ${CONSTITUENT} done
 
@@ -69,5 +70,5 @@
 	@set include=$(include)
 	@set lib=$(lib)
-	@-$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) build_strategy=keep_makefiles uninstall tag=$(tag)
+	@-$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles uninstall tag=$(tag)
 	$(echo) (constituents.nmake) uninstall ${CONSTITUENT} done
 
Index: /CMT/HEAD/mgr/fragments/nmake/constituent_lock
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/constituent_lock	(revision 468)
+++ /CMT/HEAD/mgr/fragments/nmake/constituent_lock	(revision 469)
@@ -7,5 +7,6 @@
 !if defined (cmt_${CONSTITUENT}_has_target_tag)
 
-cmt_local_tagfile_${CONSTITUENT} = $(${PACKAGE}_tag)_${CONSTITUENT}.nmake
+#cmt_local_tagfile_${CONSTITUENT} = $(${PACKAGE}_tag)_${CONSTITUENT}.nmake
+cmt_local_tagfile_${CONSTITUENT} = $(bin)$(${PACKAGE}_tag)_${CONSTITUENT}.nmake
 cmt_final_setup_${CONSTITUENT} = $(bin)${PACKAGE}_${CONSTITUENT}_setup.nmake
 cmt_local_${CONSTITUENT}_makefile = $(bin)${CONSTITUENT}.nmake
@@ -24,5 +25,6 @@
 !else
 
-cmt_local_tagfile_${CONSTITUENT} = $(${PACKAGE}_tag).nmake
+#cmt_local_tagfile_${CONSTITUENT} = $(${PACKAGE}_tag).nmake
+cmt_local_tagfile_${CONSTITUENT} = $(bin)$(${PACKAGE}_tag).nmake
 cmt_final_setup_${CONSTITUENT} = $(bin)${PACKAGE}_setup.nmake
 cmt_local_${CONSTITUENT}_makefile = $(bin)${CONSTITUENT}.nmake
@@ -34,6 +36,5 @@
 	@set include=$(include)
 	@set lib=$(lib)
-	@$(cmtexe) -tag=$(tags) $(${CONSTITUENT}_extratags) build -nmake constituent_makefile ${CONSTITUENT}
-	@move ${CONSTITUENT}.nmake $(bin)
+	@$(cmtexe) -tag=$(tags) $(${CONSTITUENT}_extratags) build -nmake constituent_makefile -out=$@ ${CONSTITUENT}
 	$(echo) (constituents.nmake) ${CONSTITUENT}.nmake done
 
@@ -44,5 +45,5 @@
 	@set include=$(include)
 	@set lib=$(lib)
-	@$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) build_strategy=keep_makefiles ${CONSTITUENT} tag=$(tag) \
+	@$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles ${CONSTITUENT} tag=$(tag) \
 	|| ($(unlock_command) ${CONSTITUENT}$(lock_suffix) & exit 1)
 	@$(unlock_command) ${CONSTITUENT}$(lock_suffix)
@@ -55,5 +56,5 @@
 	@set include=$(include)
 	@set lib=$(lib)
-	@-if exist $(cmt_local_${CONSTITUENT}_makefile) $(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) build_strategy=keep_makefiles ${CONSTITUENT}clean tag=$(tag)
+	@-if exist $(cmt_local_${CONSTITUENT}_makefile) $(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles ${CONSTITUENT}clean tag=$(tag)
 	$(echo) (constituents.nmake) ${CONSTITUENT}clean done
 
@@ -64,5 +65,5 @@
 	@set include=$(include)
 	@set lib=$(lib)
-	@-$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) build_strategy=keep_makefiles install tag=$(tag)
+	@-$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles install tag=$(tag)
 	$(echo) (constituents.nmake) install ${CONSTITUENT} done
 
@@ -73,5 +74,5 @@
 	@set include=$(include)
 	@set lib=$(lib)
-	@-$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) build_strategy=keep_makefiles uninstall tag=$(tag)
+	@-$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles uninstall tag=$(tag)
 	$(echo) (constituents.nmake) uninstall ${CONSTITUENT} done
 
Index: /CMT/HEAD/mgr/fragments/nmake/constituents_header
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/constituents_header	(revision 468)
+++ /CMT/HEAD/mgr/fragments/nmake/constituents_header	(revision 469)
@@ -11,12 +11,17 @@
 
 ${PACKAGE}_tag = $(tag)
+#cmt_local_tagfile = $(bin)$(tag).nmake
+cmt_local_tagfile = $(bin)$(${PACKAGE}_tag).nmake
 
-!if [$(echo) (constituents.nmake) Rebuilding $(${PACKAGE}_tag).nmake] == 0
+#!if [$(echo) (constituents.nmake) Rebuilding $(${PACKAGE}_tag).nmake] == 0
+!if [$(echo) (constituents.nmake) Rebuilding $(cmt_local_tagfile)] == 0
 !endif
 
-!if [cmt build tag_makefile -tag_add=$(tags) >$(${PACKAGE}_tag).nmake] == 0
+#!if [cmt build tag_makefile -tag_add=$(tags) >$(${PACKAGE}_tag).nmake] == 0
+!if [cmt build tag_makefile -tag_add=$(tags) >$(cmt_local_tagfile)] == 0
 !endif
 
-!include $(${PACKAGE}_tag).nmake
+#!include $(${PACKAGE}_tag).nmake
+!include $(cmt_local_tagfile)
 
 all ::
Index: /CMT/HEAD/mgr/fragments/nmake/dependencies
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/dependencies	(revision 468)
+++ /CMT/HEAD/mgr/fragments/nmake/dependencies	(revision 469)
@@ -4,5 +4,5 @@
 !else
 !if exist ("$(CMTROOT)/$(CMTBIN)/cmt.exe")
-!if [$(build_dependencies) ${CONSTITUENT} -all_sources] == 0
+!if [$(build_dependencies) ${CONSTITUENT} -all_sources -out=$(bin)${CONSTITUENT}_dependencies.nmake] == 0
 !endif
 !else
Index: /CMT/HEAD/mgr/fragments/nmake/library
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/library	(revision 468)
+++ /CMT/HEAD/mgr/fragments/nmake/library	(revision 469)
@@ -1,2 +1,3 @@
+#-- start of libary ----------------------
 
 ${CONSTITUENT}LIB :: $(${CONSTITUENT}shstamp)
@@ -52,5 +53,5 @@
 !if "$(CMTINSTALLAREA)" != ""
 	$(install_echo) $(@F) into $(@D)
-	$(install_silent) $(cmt_install_action) "$(PACKAGE_ROOT)\$(tag)" "$(${CONSTITUENT}installlibname)" "$(install_dir)"
+	$(install_silent) $(cmt_install_action) "$(BIN)" "$(${CONSTITUENT}installlibname)" "$(install_dir)"
 !endif
 
@@ -58,5 +59,5 @@
 !if "$(CMTINSTALLAREA)" != ""
 	$(install_echo) $(@F) into $(@D)
-	$(install_silent) $(cmt_install_action) "$(PACKAGE_ROOT)\$(tag)" "$(${CONSTITUENT}installdllname)" "$(install_dir)"
+	$(install_silent) $(cmt_install_action) "$(BIN)" "$(${CONSTITUENT}installdllname)" "$(install_dir)"
 !endif
 
@@ -64,5 +65,5 @@
 !if "$(CMTINSTALLAREA)" != ""
 	$(install_echo) $(@F) into $(@D)
-	$(install_silent) $(cmt_install_action) "$(PACKAGE_ROOT)\$(tag)" "$(${CONSTITUENT}installpdbname)" "$(install_dir)"
+	$(install_silent) $(cmt_install_action) "$(BIN)" "$(${CONSTITUENT}installpdbname)" "$(install_dir)"
 !endif
 
@@ -74,7 +75,8 @@
 !if "$(CMTINSTALLAREA)" != ""
 	$(cleanup_echo) "$(${CONSTITUENT}installlibname)" from "$(install_dir)"
-	$(cleanup_silent) $(cmt_uninstall_action) "$(PACKAGE_ROOT)\$(tag)" "$(${CONSTITUENT}installlibname)" "$(install_dir)"
+	$(cleanup_silent) $(cmt_uninstall_action) "$(BIN)" "$(${CONSTITUENT}installlibname)" "$(install_dir)"
 	$(cleanup_echo) "$(${CONSTITUENT}installdllname)" from "$(install_dir)"
-	$(cleanup_silent) $(cmt_uninstall_action) "$(PACKAGE_ROOT)\$(tag)" "$(${CONSTITUENT}installdllname)" "$(install_dir)"
+	$(cleanup_silent) $(cmt_uninstall_action) "$(BIN)" "$(${CONSTITUENT}installdllname)" "$(install_dir)"
 !endif
 
+#-- end of libary -----------------------
Index: /CMT/HEAD/mgr/fragments/nmake/library_no_share
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/library_no_share	(revision 468)
+++ /CMT/HEAD/mgr/fragments/nmake/library_no_share	(revision 469)
@@ -1,2 +1,3 @@
+#-- start of library_no_share ------
 
 ${CONSTITUENT}LIB :: $(${CONSTITUENT}lib)
@@ -30,5 +31,5 @@
 !if "$(CMTINSTALLAREA)" != ""
 	$(install_echo) $(@F) into $(@D)
-	$(install_silent) $(cmt_install_action) "$(PACKAGE_ROOT)\$(tag)" "$(${CONSTITUENT}installname)" "$(install_dir)"
+	$(install_silent) $(cmt_install_action) "$(BIN)" "$(${CONSTITUENT}installname)" "$(install_dir)"
 !endif
 
@@ -40,5 +41,6 @@
 !if "$(CMTINSTALLAREA)" != ""
 	$(cleanup_echo) "$(${CONSTITUENT}installname)" from "$(install_dir)"
-	$(cleanup_silent) (cmt_uninstall_action) "$(PACKAGE_ROOT)\$(tag)" "$(${CONSTITUENT}installname)" "$(install_dir)"
+	$(cleanup_silent) (cmt_uninstall_action) "$(BIN)" "$(${CONSTITUENT}installname)" "$(install_dir)"
 !endif
 
+#-- end of library_no_share ------
Index: /CMT/HEAD/mgr/fragments/nmake/library_no_static
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/library_no_static	(revision 468)
+++ /CMT/HEAD/mgr/fragments/nmake/library_no_static	(revision 469)
@@ -12,5 +12,5 @@
 
 #$(${CONSTITUENT}shstamp) :: $(${CONSTITUENT}arc) requirements $(use_requirements) $(${CONSTITUENT}stamps)
-$(${CONSTITUENT}shstamp) :: ${OBJS} requirements $(use_requirements) $(${CONSTITUENT}stamps)
+$(${CONSTITUENT}shstamp) :: ${OBJS} $(use_requirements) $(${CONSTITUENT}stamps)
 	$(lib_echo) dynamic library $(bin)${CONSTITUENT}.dll
 #	$(lib_silent) $(make_shlib) $(tag) ${CONSTITUENT} $(cpplinkflags) $(${CONSTITUENT}_shlibflags)
@@ -71,5 +71,5 @@
 !if "$(CMTINSTALLAREA)" != ""
 	$(install_echo) $(@F) into $(@D)
-	$(install_silent) $(cmt_install_action) "$(PACKAGE_ROOT)\$(tag)" "$(${CONSTITUENT}installlibname)" "$(install_dir)"
+	$(install_silent) $(cmt_install_action) "$(BIN)" "$(${CONSTITUENT}installlibname)" "$(install_dir)"
 !endif
 
@@ -77,5 +77,5 @@
 !if "$(CMTINSTALLAREA)" != ""
 	$(install_echo) $(@F) into $(@D)
-	$(install_silent) $(cmt_install_action) "$(PACKAGE_ROOT)\$(tag)" "$(${CONSTITUENT}installdllname)" "$(install_dir)"
+	$(install_silent) $(cmt_install_action) "$(BIN)" "$(${CONSTITUENT}installdllname)" "$(install_dir)"
 !endif
 
@@ -83,5 +83,5 @@
 !if "$(CMTINSTALLAREA)" != ""
 	$(install_echo) $(@F) into $(@D)
-	$(install_silent) $(cmt_install_action) "$(PACKAGE_ROOT)\$(tag)" "$(${CONSTITUENT}installpdbname)" "$(install_dir)"
+	$(install_silent) $(cmt_install_action) "$(BIN)" "$(${CONSTITUENT}installpdbname)" "$(install_dir)"
 !endif
 
@@ -93,7 +93,7 @@
 !if "$(CMTINSTALLAREA)" != ""
 	$(cleanup_echo) "$(${CONSTITUENT}installlibname)" from "$(install_dir)"
-	$(cleanup_silent) $(cmt_uninstall_action) "$(PACKAGE_ROOT)\$(tag)" "$(${CONSTITUENT}installlibname)" "$(install_dir)"
+	$(cleanup_silent) $(cmt_uninstall_action) "$(BIN)" "$(${CONSTITUENT}installlibname)" "$(install_dir)"
 	$(cleanup_echo) "$(${CONSTITUENT}installdllname)" from "$(install_dir)"
-	$(cleanup_silent) $(cmt_uninstall_action) "$(PACKAGE_ROOT)\$(tag)" "$(${CONSTITUENT}installdllname)" "$(install_dir)"
+	$(cleanup_silent) $(cmt_uninstall_action) "$(BIN)" "$(${CONSTITUENT}installdllname)" "$(install_dir)"
 !endif
 
Index: /CMT/HEAD/mgr/fragments/nmake/make_header
===================================================================
--- /CMT/HEAD/mgr/fragments/nmake/make_header	(revision 468)
+++ /CMT/HEAD/mgr/fragments/nmake/make_header	(revision 469)
@@ -1,2 +1,3 @@
+#-- start of make_header -----------------
 
 #====================================
@@ -29,5 +30,6 @@
 ${PACKAGE}_tag = $(tag)
 
-cmt_local_tagfile = $(${PACKAGE}_tag)_${CONSTITUENT}.nmake
+#cmt_local_tagfile = $(${PACKAGE}_tag)_${CONSTITUENT}.nmake
+cmt_local_tagfile = $(bin)$(${PACKAGE}_tag)_${CONSTITUENT}.nmake
 
 !else
@@ -37,5 +39,6 @@
 ${PACKAGE}_tag = $(tag)
 
-cmt_local_tagfile = $(${PACKAGE}_tag).nmake
+#cmt_local_tagfile = $(${PACKAGE}_tag).nmake
+cmt_local_tagfile = $(bin)$(${PACKAGE}_tag).nmake
 
 !endif
@@ -57,2 +60,4 @@
 help ::
 	@echo '${CONSTITUENT}'
+
+#-- end of make_header ------------------
Index: /CMT/HEAD/mgr/requirements
===================================================================
--- /CMT/HEAD/mgr/requirements	(revision 468)
+++ /CMT/HEAD/mgr/requirements	(revision 469)
@@ -612,5 +612,7 @@
 macro cmt_installdir_excludes  "" WIN32 "$(CMTROOT)\mgr\cmt_installdir_excludes.txt"
 
-action make "gmake $(cmt_args)" Darwin "make $(cmt_args)" CYGWIN "make $(cmt_args)" WIN32 "nmake /f nmake $(cmt_args)"
+action make "gmake bin=$(bin) $(cmt_args)" Darwin "make bin=$(bin) $(cmt_args)" CYGWIN "make bin=$(bin) $(cmt_args)" WIN32 "nmake /f nmake $(cmt_args) bin=$(bin)"
+# with NMake (Version 7.10.3077), the first macro definition on the command line
+# takes precedence over the following (if any)
 
 macro mkdir  "mkdir" \
Index: /CMT/HEAD/source/cmt_generators.cxx
===================================================================
--- /CMT/HEAD/source/cmt_generators.cxx	(revision 468)
+++ /CMT/HEAD/source/cmt_generators.cxx	(revision 469)
@@ -2693,9 +2693,5 @@
   prepare_header_file_filters ();
 
-  m_stamps = true;
-
   const cmt_string& name = arguments[0];
-
-  //cerr << "name=" << name << endl;
 
   m_constituent = Constituent::find (name);
@@ -2703,5 +2699,4 @@
     {
       // Error : wrong constituent name...
-      
       return;
     }
@@ -2712,62 +2707,6 @@
   cmt_string full_name;
   cmt_string compressed_name;
-  cmt_string suffix;
+  //  cmt_string suffix;
   cmt_string dependencies;
-
-  //
-  // Now prepare the output file names
-  //
-  cmt_string branch = CmtSystem::current_branch ();
-
-  if ((branch == "mgr") || (branch == "cmt"))
-    {
-      Use& current_use = Use::current ();
-
-      Package* p = current_use.get_package ();
-
-      if (p->is_cmt ())
-        {
-          m_bin = "../";
-          m_bin += CmtSystem::getenv ("CMTBIN");
-          m_bin += CmtSystem::file_separator ();
-        }
-      else
-        {
-          m_bin = "${bin}";
-        }
-
-      Symbol::expand (m_bin);
-
-      //cerr << "m_output_file_name=" << m_output_file_name << endl;
-      //cerr << "current_tag=" << Cmt::current_tag << endl;
-    }
-  else
-    {
-      m_bin = ".";
-      m_bin += CmtSystem::file_separator ();
-    }
-
-  m_output_file_name = m_bin;
-  m_output_file_name += name;
-  m_output_file_name += "_";
-  m_output_file_name += "dependencies.";
-  if (Cmt::build_nmake ())
-    {
-      m_output_file_name += "nmake";
-    }
-  else
-    {
-      m_output_file_name += "make";
-    }
-
-  //
-  // New read the existing dependency file if any and filter it to
-  // extract the source names
-  //
-  static DependencyFilter filter;
-
-  dependencies.read (m_output_file_name);
-
-  filter.run (dependencies);
 
   //
@@ -2788,4 +2727,5 @@
   const cmt_vector<cmt_regexp>& selects = constituent.select_exprs;
 
+  m_stamps = true;
   bool all_sources = false;
 
@@ -2803,4 +2743,10 @@
       // Get rid of files that may come from the makefile fragment
       if (file_name.find ("requirements") != cmt_string::npos) source_number--;
+      else if (file_name.substr (0, 5) == "-out=")
+        {
+          if (!all_sources) source_number--;
+	  file_name.erase (0, 5);
+	  m_output_file_name = file_name;
+        }
       else if (file_name.find (".make") != cmt_string::npos) source_number--;
       else if (file_name == "-all_sources") 
@@ -2811,9 +2757,68 @@
       else if (file_name == "-no_stamps") 
         {
-          source_number--;
+          if (!all_sources) source_number--;
 	  m_stamps = false;
         }
     }
 
+  //
+  // Now prepare the output file names
+  //
+  cmt_string branch = CmtSystem::current_branch ();
+
+  if ((branch == "mgr") || (branch == "cmt"))
+    {
+      Use& current_use = Use::current ();
+
+      Package* p = current_use.get_package ();
+
+      if (p->is_cmt ())
+        {
+	  //          m_bin = "../";
+          m_bin = "..";
+          m_bin += CmtSystem::file_separator ();
+          m_bin += CmtSystem::getenv ("CMTBIN");
+          m_bin += CmtSystem::file_separator ();
+        }
+      else if (m_output_file_name != "")
+	{
+	  CmtSystem::dirname (m_output_file_name, m_bin);
+	  if (m_bin == "")
+	    {
+	      m_bin = ".";
+	    }
+	  m_bin += CmtSystem::file_separator ();
+	}
+      else
+        {
+          m_bin = "${bin}";
+        }
+
+      Symbol::expand (m_bin);
+
+      //cerr << "m_output_file_name=" << m_output_file_name << endl;
+      //cerr << "current_tag=" << Cmt::current_tag << endl;
+    }
+  else
+    {
+      m_bin = ".";
+      m_bin += CmtSystem::file_separator ();
+    }
+
+  if (m_output_file_name == "")
+    {
+      m_output_file_name = m_bin;
+      m_output_file_name += name;
+      m_output_file_name += "_";
+      m_output_file_name += "dependencies.";
+      if (Cmt::build_nmake ())
+	{
+	  m_output_file_name += "nmake";
+	}
+      else
+	{
+	  m_output_file_name += "make";
+	}
+    }
 
   if (all_sources)
@@ -2848,4 +2853,12 @@
   else
     {
+      //
+      // New read the existing dependency file if any and filter it to
+      // extract the source names
+      //
+      static DependencyFilter filter;
+      dependencies.read (m_output_file_name);
+      filter.run (dependencies);
+      
       for (i = 1; i < source_number; i++)
         {
Index: /CMT/HEAD/source/cmt_parser.cxx
===================================================================
--- /CMT/HEAD/source/cmt_parser.cxx	(revision 468)
+++ /CMT/HEAD/source/cmt_parser.cxx	(revision 469)
@@ -7046,4 +7046,10 @@
         apply ();
 
+        buffer = "macro BIN \"";
+        buffer += pwd;
+        buffer += fs;
+        buffer += "\"";
+        apply ();
+
         buffer = "macro javabin \".";
         buffer += fs;
@@ -7110,5 +7116,50 @@
             buffer += "\"";
             apply ();
+
+	    cmt_string pardir;
+	    CmtSystem::dirname (pwd, pardir);
+	    //            buffer = "macro BIN \"$(PACKAGE_ROOT)";
+            buffer = "macro BIN \"";
+            buffer += pardir;
+            buffer += fs;
+            buffer += "$(";
+            buffer += package_tag;
+            buffer += ")";
+            buffer += fs;
+            buffer += "\"";
+            apply ();
           }
+	else
+	  {
+	    cmt_string temp = "$(bin)";
+	    Symbol::expand (temp);
+	    int len (temp.size());
+	    cmt_string atemp;
+	    if (CmtSystem::absolute_path (temp))
+	      {
+		CmtSystem::compress_path (temp, atemp);
+	      }
+	    else
+	      {
+		atemp = pwd + fs + temp;
+		CmtSystem::compress_path (atemp);
+	      }
+	    buffer = "macro BIN \"";
+	    buffer += atemp;
+	    buffer += "\"";
+	    apply ();
+	    if (0 != len && fs != temp[len - 1])
+	      {
+		buffer = "macro_append bin \"";
+		buffer += fs;
+		buffer += "\"";
+		apply ();
+
+		buffer = "macro_append BIN \"";
+		buffer += fs;
+		buffer += "\"";
+		apply ();
+	      }
+	  }
 
         if (!Symbol::is_selected ("javabin"))
Index: /CMT/HEAD/src/NMakefile.header
===================================================================
--- /CMT/HEAD/src/NMakefile.header	(revision 468)
+++ /CMT/HEAD/src/NMakefile.header	(revision 469)
@@ -55,8 +55,16 @@
 
 
-!if [$(cmtexe) build constituents_makefile -tag=$(tags)] == 0
+cmt_constituents_makefile = $(bin)constituents.nmake
+
+!IF !EXIST ("$(bin)")
+!if [mkdir "$(bin)"] == 0
+!endif
+!ENDIF
+
+!if [$(cmtexe) -tag=$(tags) build constituents_makefile -out=$(cmt_constituents_makefile)] == 0
 !endif
 
-!include constituents.nmake
+!include $(cmt_constituents_makefile)
+#!include constituents.nmake
 
 
