Index: CMT/HEAD/ChangeLog
===================================================================
--- CMT/HEAD/ChangeLog	(revision 630)
+++ CMT/HEAD/ChangeLog	(revision 631)
@@ -1,2 +1,32 @@
+2013-02-06    <rybkin@lal.in2p3.fr> 502
+
+	* mgr/fragments/nmake/constituent_app_lib: Introduce makefiles fragment for
+	applications, libraries in order to compile dependent constituents in
+	parallel
+	* mgr/fragments/nmake/constituent: Remove unused code, add empty command for
+	double-colon rules without one (so that implicit rule is not searched for),
+	do not ignore errors in install target rule command(s)
+	* mgr/fragments/nmake/constituent_lock: idem
+	* mgr/fragments/nmake/application_header: Add rules for ${CONSTITUENT}compile,
+	${CONSTITUENT}prototype targets
+	* mgr/fragments/nmake/java_header: idem
+	* mgr/fragments/nmake/library_header: idem
+	* mgr/fragments/nmake/jar_header: idem
+	* mgr/fragments/nmake/jar: Add empty command for double-colon rules without one (so that implicit rule is not searched for)
+	* mgr/fragments/nmake/library: idem
+	* mgr/fragments/nmake/library_no_static: idem
+	* mgr/fragments/nmake/java: Create necessary directory in compilation rule
+	to avoid race condition
+	* mgr/fragments/constituent_app_lib: Simplify dependencies specification
+	* mgr/fragments/constituent: In ${CONSTITUENT}install target rule
+	command, check whether makefile exists to allow for use of -n (no-op) Make
+	option, do not ignore errors, in ${CONSTITUENT}uninstall target rule
+	command, ignore errors, similar to ${CONSTITUENT}clean target rule command
+	* mgr/fragments/constituent_lock: idem
+	* mgr/fragments/nmake/check_application: Remove space between $(silent) and
+	possibly undefined macro (causing NMAKE : fatal error U1038: Internal error)
+	* mgr/cmt_dcc_version.sh: Made more generic to account for clang compiler
+	on Mac OS X platform
+	
 2013-01-28    <rybkin@lal.in2p3.fr> 501
 
Index: CMT/HEAD/mgr/cmt_dcc_version.sh
===================================================================
--- CMT/HEAD/mgr/cmt_dcc_version.sh	(revision 630)
+++ CMT/HEAD/mgr/cmt_dcc_version.sh	(revision 631)
@@ -1,4 +1,3 @@
-
 export LC_ALL=C
 cc -v 2>&1 |\
- sed -n '/version/s#^[^ ]* [^ ]* \([0-9][^ ]*\) *.*#gcc-\1#p'
+ sed -n '/version/s#^\([^ ]\{1,\} \)*\([^ ]\{1,\}\) version \([[:digit:]][^ ]*\) *.*#\2-\3#p'
Index: CMT/HEAD/mgr/fragments/constituent
===================================================================
--- CMT/HEAD/mgr/fragments/constituent	(revision 630)
+++ CMT/HEAD/mgr/fragments/constituent	(revision 631)
@@ -92,7 +92,10 @@
 
 ${CONSTITUENT}install :: $(${CONSTITUENT}_dependencies) $(cmt_local_${CONSTITUENT}_makefile)
-	$(echo) "(constituents.make) Starting install ${CONSTITUENT}"
-	@-$(MAKE) -f $(cmt_local_${CONSTITUENT}_makefile) install
-	$(echo) "(constituents.make) install ${CONSTITUENT} done"
+	$(echo) "(constituents.make) Starting $@"
+	@if test -f $(cmt_local_${CONSTITUENT}_makefile); then \
+	  $(MAKE) -f $(cmt_local_${CONSTITUENT}_makefile) install; \
+	  fi
+#	@-$(MAKE) -f $(cmt_local_${CONSTITUENT}_makefile) install
+	$(echo) "(constituents.make) $@ done"
 
 uninstall : ${CONSTITUENT}uninstall
@@ -101,10 +104,10 @@
 
 ${CONSTITUENT}uninstall : $(${CONSTITUENT}uninstall_dependencies) ##$(cmt_local_${CONSTITUENT}_makefile)
-	$(echo) "(constituents.make) Starting uninstall ${CONSTITUENT}"
-	@if test -f $(cmt_local_${CONSTITUENT}_makefile); then \
+	$(echo) "(constituents.make) Starting $@"
+	@-if test -f $(cmt_local_${CONSTITUENT}_makefile); then \
 	  $(MAKE) -f $(cmt_local_${CONSTITUENT}_makefile) uninstall; \
 	  fi
 #	@$(MAKE) -f $(cmt_local_${CONSTITUENT}_makefile) uninstall
-	$(echo) "(constituents.make) uninstall ${CONSTITUENT} done"
+	$(echo) "(constituents.make) $@ done"
 
 remove_library_links :: ${CONSTITUENT}uninstall ;
Index: CMT/HEAD/mgr/fragments/constituent_app_lib
===================================================================
--- CMT/HEAD/mgr/fragments/constituent_app_lib	(revision 630)
+++ CMT/HEAD/mgr/fragments/constituent_app_lib	(revision 631)
@@ -70,7 +70,7 @@
 #	  $(cmtexe) -tag=$(tags) $(${CONSTITUENT}_extratags) build constituent_makefile -out=$(cmt_local_${CONSTITUENT}_makefile) ${CONSTITUENT}
 
+${CONSTITUENT} :: ${CONSTITUENT}compile ${CONSTITUENT}install ;
+
 ifdef cmt_${CONSTITUENT}_has_prototypes
-
-${CONSTITUENT} :: ${CONSTITUENT}prototype ${CONSTITUENT}compile ${CONSTITUENT}install ;
 
 ${CONSTITUENT}prototype : $(${CONSTITUENT}prototype_dependencies) $(cmt_local_${CONSTITUENT}_makefile) dirs ${CONSTITUENT}dirs
@@ -83,8 +83,4 @@
 
 ${CONSTITUENT}compile : ${CONSTITUENT}prototype
-
-else
-
-${CONSTITUENT} :: ${CONSTITUENT}compile ${CONSTITUENT}install ;
 
 endif
Index: CMT/HEAD/mgr/fragments/constituent_lock
===================================================================
--- CMT/HEAD/mgr/fragments/constituent_lock	(revision 630)
+++ CMT/HEAD/mgr/fragments/constituent_lock	(revision 631)
@@ -95,7 +95,10 @@
 
 ${CONSTITUENT}install :: $(${CONSTITUENT}_dependencies) $(cmt_local_${CONSTITUENT}_makefile)
-	$(echo) "(constituents.make) Starting install ${CONSTITUENT}"
-	@-$(MAKE) -f $(cmt_local_${CONSTITUENT}_makefile) install
-	$(echo) "(constituents.make) install ${CONSTITUENT} done"
+	$(echo) "(constituents.make) Starting $@"
+	@if test -f $(cmt_local_${CONSTITUENT}_makefile); then \
+	  $(MAKE) -f $(cmt_local_${CONSTITUENT}_makefile) install; \
+	  fi
+#	@-$(MAKE) -f $(cmt_local_${CONSTITUENT}_makefile) install
+	$(echo) "(constituents.make) $@ done"
 
 uninstall : ${CONSTITUENT}uninstall
@@ -104,10 +107,10 @@
 
 ${CONSTITUENT}uninstall : $(${CONSTITUENT}uninstall_dependencies) ##$(cmt_local_${CONSTITUENT}_makefile)
-	$(echo) "(constituents.make) Starting uninstall ${CONSTITUENT}"
-	@if test -f $(cmt_local_${CONSTITUENT}_makefile); then \
+	$(echo) "(constituents.make) Starting $@"
+	@-if test -f $(cmt_local_${CONSTITUENT}_makefile); then \
 	  $(MAKE) -f $(cmt_local_${CONSTITUENT}_makefile) uninstall; \
 	  fi
 #	@$(MAKE) -f $(cmt_local_${CONSTITUENT}_makefile) uninstall
-	$(echo) "(constituents.make) uninstall ${CONSTITUENT} done"
+	$(echo) "(constituents.make) $@ done"
 
 remove_library_links :: ${CONSTITUENT}uninstall ;
Index: CMT/HEAD/mgr/fragments/nmake/application_header
===================================================================
--- CMT/HEAD/mgr/fragments/nmake/application_header	(revision 630)
+++ CMT/HEAD/mgr/fragments/nmake/application_header	(revision 631)
@@ -1,5 +1,18 @@
+#-- start of application_header
 
 ${CONSTITUENT} :: dirs ${PROTOTARGET} $(bin)${CONSTITUENT}$(application_suffix)
 	$(echo) "${CONSTITUENT} ok"
 
+cmt_${CONSTITUENT}_${HASPROTOTYPES} = 1
 
+#--------------------------------------
+
+!if defined (cmt_${CONSTITUENT}_has_prototypes)
+
+${CONSTITUENT}prototype : ${PROTOTARGET} ;
+
+!endif
+
+${CONSTITUENT}compile : ${OBJS} ;
+
+#-- end of application_header
Index: CMT/HEAD/mgr/fragments/nmake/check_application
===================================================================
--- CMT/HEAD/mgr/fragments/nmake/check_application	(revision 630)
+++ CMT/HEAD/mgr/fragments/nmake/check_application	(revision 631)
@@ -5,7 +5,7 @@
 #${CONSTITUENT}check :: ${CONSTITUENT}
 ${CONSTITUENT}check ::
-	$(silent) $(${CONSTITUENT}_pre_check)
-	$(silent) $(bin)${CONSTITUENT}$(application_suffix) $(${CONSTITUENT}_check_args)
-	$(silent) $(${CONSTITUENT}_post_check)
+	$(silent)$(${CONSTITUENT}_pre_check)
+	$(silent)$(bin)${CONSTITUENT}$(application_suffix) $(${CONSTITUENT}_check_args)
+	$(silent)$(${CONSTITUENT}_post_check)
 
 #-- end of check_application ------
Index: CMT/HEAD/mgr/fragments/nmake/constituent
===================================================================
--- CMT/HEAD/mgr/fragments/nmake/constituent	(revision 630)
+++ CMT/HEAD/mgr/fragments/nmake/constituent	(revision 631)
@@ -2,59 +2,23 @@
 
 cmt_${CONSTITUENT}_${HASTARGETTAG} = 1
+cmt_${CONSTITUENT}_${HASDEPENDENCIES} = 1
 
-#--------------------------------------------------------
+#----------------------------------------
 
 !if defined (cmt_${CONSTITUENT}_has_target_tag)
 
-#cmt_local_tagfile_${CONSTITUENT} = $(${PACKAGE}_tag)_${CONSTITUENT}.nmake
 cmt_local_tagfile_${CONSTITUENT} = $(bin)$(${PACKAGE}_tag)_${CONSTITUENT}.nmake
-cmt_local_setup_${CONSTITUENT} = $(bin)setup_${CONSTITUENT}.nmake.tmp
 cmt_final_setup_${CONSTITUENT} = $(bin)setup_${CONSTITUENT}.nmake
-#cmt_final_setup_${CONSTITUENT} = $(bin)${PACKAGE}_${CONSTITUENT}_setup.nmake
 cmt_local_${CONSTITUENT}_makefile = $(bin)${CONSTITUENT}.nmake
 
 ${CONSTITUENT}_extratags = -tag_add=target_${CONSTITUENT}
 
-#!if [if not exist $(bin) mkdir $(bin)] == 0
-#!endif
-
-#!if "$(QUICK)" == "" || !exist ($(cmt_local_tagfile_${CONSTITUENT}))
-
-#!if [$(echo) (constituents.nmake) Rebuilding $(cmt_local_tagfile_${CONSTITUENT})] == 0
-#!endif
-#!if [cmt -tag=$(tags) $(${CONSTITUENT}_extratags) build tag_makefile >$(cmt_local_tagfile_${CONSTITUENT})] == 0
-#!endif
-
-#!if [$(echo) (constituents.nmake) Rebuilding $(cmt_final_setup_${CONSTITUENT})] == 0
-#!endif
-#!if [$(cmtexe) -tag=$(tags) $(${CONSTITUENT}_extratags) show setup >$(cmt_local_setup_${CONSTITUENT})] == 0
-#!endif
-
-#!if exist ($(cmt_final_setup_${CONSTITUENT})) && [ echo n|comp $(cmt_final_setup_${CONSTITUENT}) $(cmt_local_setup_${CONSTITUENT}) >nul 2>&1 ] == 0
-#!if [ del $(cmt_local_setup_${CONSTITUENT}) ] == 0
-#!endif
-#!else
-#!if [ move /y $(cmt_local_setup_${CONSTITUENT}) $(cmt_final_setup_${CONSTITUENT}) >nul ] == 0
-#!endif
-#!endif
-
-#!endif
-
 !else
 
-#cmt_local_tagfile_${CONSTITUENT} = $(${PACKAGE}_tag).nmake
 cmt_local_tagfile_${CONSTITUENT} = $(bin)$(${PACKAGE}_tag).nmake
-#cmt_local_setup_${CONSTITUENT} = $(bin)setup.nmake.tmp
 cmt_final_setup_${CONSTITUENT} = $(bin)setup.nmake
-#cmt_final_setup_${CONSTITUENT} = $(bin)${PACKAGE}_setup.nmake
 cmt_local_${CONSTITUENT}_makefile = $(bin)${CONSTITUENT}.nmake
 
 !endif
-
-#!if "$(QUICK)" == ""
-#$(cmt_local_${CONSTITUENT}_makefile) : $(${CONSTITUENT}_dependencies) $(cmt_local_tagfile_${CONSTITUENT})
-#!else
-#$(cmt_local_${CONSTITUENT}_makefile) : $(cmt_local_tagfile_${CONSTITUENT})
-#!endif
 
 !if defined (cmt_${CONSTITUENT}_has_target_tag)
@@ -90,5 +54,4 @@
 !endif
 
-cmt_${CONSTITUENT}_${HASDEPENDENCIES} = 1
 
 !if defined (cmt_${CONSTITUENT}_has_dependencies)
@@ -109,29 +72,27 @@
 	$(echo) (constituents.nmake) ${CONSTITUENT} done
 
-clean :: ${CONSTITUENT}clean
+clean :: ${CONSTITUENT}clean ;
 
 ${CONSTITUENT}clean :: $(${CONSTITUENT}clean_dependencies) ##$(cmt_local_${CONSTITUENT}_makefile)
-	$(echo) (constituents.nmake) Starting ${CONSTITUENT}clean
+	$(echo) (constituents.nmake) Starting $@
 	@set include=$(include)
 	@set lib=$(lib)
-	@-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
+	@-if exist $(cmt_local_${CONSTITUENT}_makefile) $(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles $@ tag=$(tag)
+	$(echo) (constituents.nmake) $@ done
 #	@$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles ${CONSTITUENT}clean tag=$(tag)
 
-install :: ${CONSTITUENT}install
+install :: ${CONSTITUENT}install ;
 
 ${CONSTITUENT}install :: $(${CONSTITUENT}_dependencies) $(cmt_local_${CONSTITUENT}_makefile)
-	$(echo) (constituents.nmake) Starting install ${CONSTITUENT}
+	$(echo) (constituents.nmake) Starting $@
 	@set include=$(include)
 	@set lib=$(lib)
-	@-$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles install tag=$(tag)
-	$(echo) (constituents.nmake) install ${CONSTITUENT} done
+	@$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles install tag=$(tag)
+	$(echo) (constituents.nmake) $@ done
 
-uninstall :: ${CONSTITUENT}uninstall
+uninstall :: ${CONSTITUENT}uninstall ;
 
-#${CONSTITUENT}uninstall :: $(cmt_local_${CONSTITUENT}_makefile)
-#${CONSTITUENT}uninstall :: $(cmt_local_tagfile_${CONSTITUENT})
 ${CONSTITUENT}uninstall :: $(${CONSTITUENT}uninstall_dependencies)
-	$(echo) (constituents.nmake) Starting uninstall ${CONSTITUENT}
+	$(echo) (constituents.nmake) Starting $@
 	@set include=$(include)
 	@set lib=$(lib)
@@ -140,5 +101,5 @@
 #	@if not exist $(cmt_local_${CONSTITUENT}_makefile) $(cmtexe) -tag=$(tags) $(${CONSTITUENT}_extratags) build -nmake constituent_makefile -out=$(cmt_local_${CONSTITUENT}_makefile) ${CONSTITUENT}
 #	@-$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles uninstall tag=$(tag)
-	$(echo) (constituents.nmake) uninstall ${CONSTITUENT} done
+	$(echo) (constituents.nmake) $@ done
 
 #-- end of constituent ------
Index: CMT/HEAD/mgr/fragments/nmake/constituent_app_lib
===================================================================
--- CMT/HEAD/mgr/fragments/nmake/constituent_app_lib	(revision 631)
+++ CMT/HEAD/mgr/fragments/nmake/constituent_app_lib	(revision 631)
@@ -0,0 +1,131 @@
+#-- start of constituent_app_lib ------
+
+cmt_${CONSTITUENT}_${HASTARGETTAG} = 1
+cmt_${CONSTITUENT}_${HASPROTOTYPES} = 1
+cmt_${CONSTITUENT}_${HASDEPENDENCIES} = 1
+
+#----------------------------------------
+
+!if defined (cmt_${CONSTITUENT}_has_target_tag)
+
+cmt_local_tagfile_${CONSTITUENT} = $(bin)$(${PACKAGE}_tag)_${CONSTITUENT}.nmake
+cmt_final_setup_${CONSTITUENT} = $(bin)setup_${CONSTITUENT}.nmake
+cmt_local_${CONSTITUENT}_makefile = $(bin)${CONSTITUENT}.nmake
+
+${CONSTITUENT}_extratags = -tag_add=target_${CONSTITUENT}
+
+!else
+
+cmt_local_tagfile_${CONSTITUENT} = $(bin)$(${PACKAGE}_tag).nmake
+cmt_final_setup_${CONSTITUENT} = $(bin)setup.nmake
+cmt_local_${CONSTITUENT}_makefile = $(bin)${CONSTITUENT}.nmake
+
+!endif
+
+!if defined (cmt_${CONSTITUENT}_has_target_tag)
+
+!if "$(QUICK)" == "" || !exist ($(cmt_local_${CONSTITUENT}_makefile)) || !exist ($(cmt_local_tagfile_${CONSTITUENT})) || !exist ($(cmt_final_setup_${CONSTITUENT}))
+$(cmt_local_${CONSTITUENT}_makefile) :: $(${CONSTITUENT}compile_dependencies) dirs
+	$(echo) (constituents.nmake) Building ${CONSTITUENT}.nmake
+	@set include=$(include)
+	@set lib=$(lib)
+	@$(cmtexe) -tag=$(tags) $(${CONSTITUENT}_extratags) build -nmake constituent_config -out=$@ ${CONSTITUENT}
+!else
+$(cmt_local_${CONSTITUENT}_makefile) : $(${CONSTITUENT}compile_dependencies) $(use_requirements)
+	@set include=$(include)
+	@set lib=$(lib)
+	@if not "$?"=="$(${CONSTITUENT}compile_dependencies)" ((if not "$(cmtmsg)"=="" @echo "$(CMTMSGPREFIX)" "(constituents.nmake) Rebuilding ${CONSTITUENT}.nmake") & $(cmtexe) -tag=$(tags) $(${CONSTITUENT}_extratags) build -nmake constituent_config -out=$@ ${CONSTITUENT}) else (if not "$(cmtmsg)"=="" @echo "$(CMTMSGPREFIX)" "(constituents.nmake) ${CONSTITUENT}.nmake up-to-date")
+!endif
+
+!else
+
+!if "$(QUICK)" == "" || !exist ($(cmt_local_${CONSTITUENT}_makefile)) || !exist ($(cmt_local_tagfile_${CONSTITUENT})) || !exist ($(cmt_final_setup_${CONSTITUENT}))
+$(cmt_local_${CONSTITUENT}_makefile) :: $(${CONSTITUENT}compile_dependencies) dirs
+	$(echo) (constituents.nmake) Building ${CONSTITUENT}.nmake
+	@set include=$(include)
+	@set lib=$(lib)
+	@$(cmtexe) -f=$(bin)${CONSTITUENT}.in -tag=$(tags) $(${CONSTITUENT}_extratags) build -nmake constituent_makefile -without_cmt -out=$@ ${CONSTITUENT}
+!else
+$(cmt_local_${CONSTITUENT}_makefile) : $(${CONSTITUENT}compile_dependencies) $(use_requirements) $(bin)${CONSTITUENT}.in
+	@set include=$(include)
+	@set lib=$(lib)
+	@if not "$?"=="$(${CONSTITUENT}compile_dependencies)" ((if not "$(cmtmsg)"=="" @echo "$(CMTMSGPREFIX)" "(constituents.nmake) Rebuilding ${CONSTITUENT}.nmake") & $(cmtexe) -f=$(bin)${CONSTITUENT}.in -tag=$(tags) $(${CONSTITUENT}_extratags) build -nmake constituent_makefile -without_cmt -out=$@ ${CONSTITUENT}) else (if not "$(cmtmsg)"=="" @echo "$(CMTMSGPREFIX)" "(constituents.nmake) ${CONSTITUENT}.nmake up-to-date")
+!endif
+
+!endif
+
+${CONSTITUENT} :: ${CONSTITUENT}compile ${CONSTITUENT}install ;
+
+
+!if defined (cmt_${CONSTITUENT}_has_prototypes)
+
+${CONSTITUENT}prototype : $(${CONSTITUENT}prototype_dependencies) $(cmt_local_${CONSTITUENT}_makefile) dirs
+	$(echo) (constituents.nmake) Starting $@
+	@set include=$(include)
+	@set lib=$(lib)
+	@$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles $@ tag=$(tag)
+	$(echo) (constituents.nmake) $@ done
+
+${CONSTITUENT}compile : ${CONSTITUENT}prototype
+
+!if defined (cmt_${CONSTITUENT}_has_dependencies)
+
+${CONSTITUENT}dependencies : ${CONSTITUENT}prototype
+
+!endif
+
+!endif
+
+
+!if defined (cmt_${CONSTITUENT}_has_dependencies)
+
+${CONSTITUENT}dependencies : $(cmt_local_${CONSTITUENT}_makefile) dirs
+	$(echo) (constituents.nmake) Starting $@
+	@set include=$(include)
+	@set lib=$(lib)
+	@$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles dependencies tag=$(tag)
+	$(echo) (constituents.nmake) $@ done
+
+${CONSTITUENT}compile : ${CONSTITUENT}dependencies
+
+!endif
+
+${CONSTITUENT}compile : $(${CONSTITUENT}compile_dependencies) $(cmt_local_${CONSTITUENT}_makefile) dirs
+	$(echo) (constituents.nmake) Starting $@
+	@set include=$(include)
+	@set lib=$(lib)
+	@$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles $@ tag=$(tag)
+	$(echo) (constituents.nmake) $@ done
+
+clean :: ${CONSTITUENT}clean ;
+
+${CONSTITUENT}clean :: $(${CONSTITUENT}clean_dependencies) ##$(cmt_local_${CONSTITUENT}_makefile)
+	$(echo) (constituents.nmake) Starting $@
+	@set include=$(include)
+	@set lib=$(lib)
+	@-if exist $(cmt_local_${CONSTITUENT}_makefile) $(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles $@ tag=$(tag)
+	$(echo) (constituents.nmake) $@ done
+#	@$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles ${CONSTITUENT}clean tag=$(tag)
+
+install :: ${CONSTITUENT}install ;
+
+${CONSTITUENT}install :: ${CONSTITUENT}compile $(${CONSTITUENT}_dependencies) $(cmt_local_${CONSTITUENT}_makefile)
+	$(echo) (constituents.nmake) Starting $@
+	@set include=$(include)
+	@set lib=$(lib)
+	@$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles install tag=$(tag)
+	$(echo) (constituents.nmake) $@ done
+
+uninstall :: ${CONSTITUENT}uninstall ;
+
+${CONSTITUENT}uninstall :: $(${CONSTITUENT}uninstall_dependencies)
+	$(echo) (constituents.nmake) Starting $@
+	@set include=$(include)
+	@set lib=$(lib)
+	@-if exist $(cmt_local_${CONSTITUENT}_makefile) $(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles uninstall tag=$(tag)
+#	@if not exist $(cmt_local_${CONSTITUENT}_makefile) $(cmtexe) -tag=$(tags) $(${CONSTITUENT}_extratags) build -nmake constituent_config -out=$(cmt_local_${CONSTITUENT}_makefile) ${CONSTITUENT}
+#	@if not exist $(cmt_local_${CONSTITUENT}_makefile) $(cmtexe) -tag=$(tags) $(${CONSTITUENT}_extratags) build -nmake constituent_makefile -out=$(cmt_local_${CONSTITUENT}_makefile) ${CONSTITUENT}
+#	@-$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles uninstall tag=$(tag)
+	$(echo) (constituents.nmake) $@ done
+
+#-- end of constituent_app_lib ------
Index: CMT/HEAD/mgr/fragments/nmake/constituent_lock
===================================================================
--- CMT/HEAD/mgr/fragments/nmake/constituent_lock	(revision 630)
+++ CMT/HEAD/mgr/fragments/nmake/constituent_lock	(revision 631)
@@ -2,59 +2,23 @@
 
 cmt_${CONSTITUENT}_${HASTARGETTAG} = 1
+cmt_${CONSTITUENT}_${HASDEPENDENCIES} = 1
 
-#--------------------------------------------------------
+#----------------------------------------
 
 !if defined (cmt_${CONSTITUENT}_has_target_tag)
 
-#cmt_local_tagfile_${CONSTITUENT} = $(${PACKAGE}_tag)_${CONSTITUENT}.nmake
 cmt_local_tagfile_${CONSTITUENT} = $(bin)$(${PACKAGE}_tag)_${CONSTITUENT}.nmake
-cmt_local_setup_${CONSTITUENT} = $(bin)setup_${CONSTITUENT}.nmake.tmp
 cmt_final_setup_${CONSTITUENT} = $(bin)setup_${CONSTITUENT}.nmake
-#cmt_final_setup_${CONSTITUENT} = $(bin)${PACKAGE}_${CONSTITUENT}_setup.nmake
 cmt_local_${CONSTITUENT}_makefile = $(bin)${CONSTITUENT}.nmake
 
 ${CONSTITUENT}_extratags = -tag_add=target_${CONSTITUENT}
 
-#!if [if not exist $(bin) mkdir $(bin)] == 0
-#!endif
-
-#!if "$(QUICK)" == "" || !exist ($(cmt_local_tagfile_${CONSTITUENT}))
-
-#!if [$(echo) (constituents.nmake) Rebuilding $(cmt_local_tagfile_${CONSTITUENT})] == 0
-#!endif
-#!if [cmt -tag=$(tags) $(${CONSTITUENT}_extratags) build tag_makefile >$(cmt_local_tagfile_${CONSTITUENT})] == 0
-#!endif
-
-#!if [$(echo) (constituents.nmake) Rebuilding $(cmt_final_setup_${CONSTITUENT})] == 0
-#!endif
-#!if [$(cmtexe) -tag=$(tags) $(${CONSTITUENT}_extratags) show setup >$(cmt_local_setup_${CONSTITUENT})] == 0
-#!endif
-
-#!if exist ($(cmt_final_setup_${CONSTITUENT})) && [ echo n|comp $(cmt_final_setup_${CONSTITUENT}) $(cmt_local_setup_${CONSTITUENT}) >nul 2>&1 ] == 0
-#!if [ del $(cmt_local_setup_${CONSTITUENT}) ] == 0
-#!endif
-#!else
-#!if [ move /y $(cmt_local_setup_${CONSTITUENT}) $(cmt_final_setup_${CONSTITUENT}) >nul ] == 0
-#!endif
-#!endif
-
-#!endif
-
 !else
 
-#cmt_local_tagfile_${CONSTITUENT} = $(${PACKAGE}_tag).nmake
 cmt_local_tagfile_${CONSTITUENT} = $(bin)$(${PACKAGE}_tag).nmake
-#cmt_local_setup_${CONSTITUENT} = $(bin)setup.nmake.tmp
 cmt_final_setup_${CONSTITUENT} = $(bin)setup.nmake
-#cmt_final_setup_${CONSTITUENT} = $(bin)${PACKAGE}_setup.nmake
 cmt_local_${CONSTITUENT}_makefile = $(bin)${CONSTITUENT}.nmake
 
 !endif
-
-#!if "$(QUICK)" == ""
-#$(cmt_local_${CONSTITUENT}_makefile) : $(${CONSTITUENT}_dependencies) $(cmt_local_tagfile_${CONSTITUENT})
-#!else
-#$(cmt_local_${CONSTITUENT}_makefile) : $(cmt_local_tagfile_${CONSTITUENT})
-#!endif
 
 !if defined (cmt_${CONSTITUENT}_has_target_tag)
@@ -90,5 +54,4 @@
 !endif
 
-cmt_${CONSTITUENT}_${HASDEPENDENCIES} = 1
 
 !if defined (cmt_${CONSTITUENT}_has_dependencies)
@@ -113,29 +76,27 @@
 	$(echo) (constituents.nmake) ${CONSTITUENT} done
 
-clean :: ${CONSTITUENT}clean
+clean :: ${CONSTITUENT}clean ;
 
 ${CONSTITUENT}clean :: $(${CONSTITUENT}clean_dependencies) ##$(cmt_local_${CONSTITUENT}_makefile)
-	$(echo) (constituents.nmake) Starting ${CONSTITUENT}clean
+	$(echo) (constituents.nmake) Starting $@
 	@set include=$(include)
 	@set lib=$(lib)
-	@-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
+	@-if exist $(cmt_local_${CONSTITUENT}_makefile) $(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles $@ tag=$(tag)
+	$(echo) (constituents.nmake) $@ done
 #	@$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles ${CONSTITUENT}clean tag=$(tag)
 
-install :: ${CONSTITUENT}install
+install :: ${CONSTITUENT}install ;
 
 ${CONSTITUENT}install :: $(${CONSTITUENT}_dependencies) $(cmt_local_${CONSTITUENT}_makefile)
-	$(echo) (constituents.nmake) Starting install ${CONSTITUENT}
+	$(echo) (constituents.nmake) Starting $@
 	@set include=$(include)
 	@set lib=$(lib)
-	@-$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles install tag=$(tag)
-	$(echo) (constituents.nmake) install ${CONSTITUENT} done
+	@$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles install tag=$(tag)
+	$(echo) (constituents.nmake) $@ done
 
-uninstall :: ${CONSTITUENT}uninstall
+uninstall :: ${CONSTITUENT}uninstall ;
 
-#${CONSTITUENT}uninstall :: $(cmt_local_${CONSTITUENT}_makefile)
-#${CONSTITUENT}uninstall :: $(cmt_local_tagfile_${CONSTITUENT})
 ${CONSTITUENT}uninstall :: $(${CONSTITUENT}uninstall_dependencies)
-	$(echo) (constituents.nmake) Starting uninstall ${CONSTITUENT}
+	$(echo) (constituents.nmake) Starting $@
 	@set include=$(include)
 	@set lib=$(lib)
@@ -144,5 +105,5 @@
 #	@if not exist $(cmt_local_${CONSTITUENT}_makefile) $(cmtexe) -tag=$(tags) $(${CONSTITUENT}_extratags) build -nmake constituent_makefile -out=$(cmt_local_${CONSTITUENT}_makefile) ${CONSTITUENT}
 #	@-$(MAKE) /nologo /f $(cmt_local_${CONSTITUENT}_makefile) /$(MAKEFLAGS) bin=$(bin) build_strategy=keep_makefiles uninstall tag=$(tag)
-	$(echo) (constituents.nmake) uninstall ${CONSTITUENT} done
+	$(echo) (constituents.nmake) $@ done
 
 #-- end of constituent_lock ------
Index: CMT/HEAD/mgr/fragments/nmake/jar
===================================================================
--- CMT/HEAD/mgr/fragments/nmake/jar	(revision 630)
+++ CMT/HEAD/mgr/fragments/nmake/jar	(revision 631)
@@ -9,7 +9,7 @@
 ${CONSTITUENT}installname = ${CONSTITUENT}.jar
 
-${CONSTITUENT} :: ${CONSTITUENT}install
+${CONSTITUENT} :: ${CONSTITUENT}install ;
 
-install :: ${CONSTITUENT}install
+install :: ${CONSTITUENT}install ;
 
 ${CONSTITUENT}install :: $(install_dir)\$(${CONSTITUENT}installname)
@@ -26,5 +26,5 @@
 ##${CONSTITUENT}clean :: ${CONSTITUENT}uninstall
 
-uninstall :: ${CONSTITUENT}uninstall
+uninstall :: ${CONSTITUENT}uninstall ;
 
 ${CONSTITUENT}uninstall ::
Index: CMT/HEAD/mgr/fragments/nmake/jar_header
===================================================================
--- CMT/HEAD/mgr/fragments/nmake/jar_header	(revision 630)
+++ CMT/HEAD/mgr/fragments/nmake/jar_header	(revision 631)
@@ -8,3 +8,15 @@
 	$(echo) "${CONSTITUENT} ok"
 
+cmt_${CONSTITUENT}_${HASPROTOTYPES} = 1
+
+#--------------------------------------
+
+!if defined (cmt_${CONSTITUENT}_has_prototypes)
+
+${CONSTITUENT}prototype : ${PROTOTARGET} ;
+
+!endif
+
+${CONSTITUENT}compile : ${OBJS} ;
+
 #-- end of jar_header ------
Index: CMT/HEAD/mgr/fragments/nmake/java
===================================================================
--- CMT/HEAD/mgr/fragments/nmake/java	(revision 630)
+++ CMT/HEAD/mgr/fragments/nmake/java	(revision 631)
@@ -1,6 +1,9 @@
+#-- start of java ------
 
 ${OUTPUTNAME} : ${FULLNAME}
 	$(java_echo) $@
-	@cd $(src)
-	$(javacomp) -d $(javabin)/${CONSTITUENT} $(use_javaflags) $(${CONSTITUENT}_javaflags) $(${NAME}_javaflags) ${FULLNAME}
+	$(java_silent) if not exist $(javabin)${CONSTITUENT} mkdir $(javabin)${CONSTITUENT}
+	$(java_silent) cd $(src)
+	$(java_silent) $(javacomp) -d $(javabin)/${CONSTITUENT} $(use_javaflags) $(${CONSTITUENT}_javaflags) $(${NAME}_javaflags) ${FULLNAME}
 
+#-- end of java ------
Index: CMT/HEAD/mgr/fragments/nmake/java_header
===================================================================
--- CMT/HEAD/mgr/fragments/nmake/java_header	(revision 630)
+++ CMT/HEAD/mgr/fragments/nmake/java_header	(revision 631)
@@ -6,4 +6,16 @@
 ${CONSTITUENT} :: ${CONSTITUENT}javadirs $(javabin)${CONSTITUENT}.jar
 	$(echo) "${CONSTITUENT} ok"
+
+cmt_${CONSTITUENT}_${HASPROTOTYPES} = 1
+
+#--------------------------------------
+
+!if defined (cmt_${CONSTITUENT}_has_prototypes)
+
+${CONSTITUENT}prototype : ${PROTOTARGET} ;
+
+!endif
+
+${CONSTITUENT}compile : ${OBJS} ;
 
 $(javabin)${CONSTITUENT}.jar :: ${OBJS}
@@ -16,7 +28,7 @@
 ${CONSTITUENT}installname = ${CONSTITUENT}.jar
 
-${CONSTITUENT} :: ${CONSTITUENT}install
+${CONSTITUENT} :: ${CONSTITUENT}install ;
 
-install :: ${CONSTITUENT}install
+install :: ${CONSTITUENT}install ;
 
 ${CONSTITUENT}install :: $(install_dir)\$(${CONSTITUENT}installname)
@@ -33,5 +45,5 @@
 ##${CONSTITUENT}clean :: ${CONSTITUENT}uninstall
 
-uninstall :: ${CONSTITUENT}uninstall
+uninstall :: ${CONSTITUENT}uninstall ;
 
 ${CONSTITUENT}uninstall ::
Index: CMT/HEAD/mgr/fragments/nmake/library
===================================================================
--- CMT/HEAD/mgr/fragments/nmake/library	(revision 630)
+++ CMT/HEAD/mgr/fragments/nmake/library	(revision 631)
@@ -34,7 +34,7 @@
 ${CONSTITUENT}installpdbname = $(library_prefix)${CONSTITUENT}$(library_suffix).pdb
 
-${CONSTITUENT} :: ${CONSTITUENT}install
+${CONSTITUENT} :: ${CONSTITUENT}install ;
 
-install :: ${CONSTITUENT}install
+install :: ${CONSTITUENT}install ;
 
 !IF "$(vsCONFIG)" == "Debug" 
@@ -72,5 +72,5 @@
 ##${CONSTITUENT}clean :: ${CONSTITUENT}uninstall
 
-uninstall :: ${CONSTITUENT}uninstall
+uninstall :: ${CONSTITUENT}uninstall ;
 
 ${CONSTITUENT}uninstall ::
Index: CMT/HEAD/mgr/fragments/nmake/library_header
===================================================================
--- CMT/HEAD/mgr/fragments/nmake/library_header	(revision 630)
+++ CMT/HEAD/mgr/fragments/nmake/library_header	(revision 631)
@@ -1,2 +1,3 @@
+#-- start of libary_header ---------------
 
 ${CONSTITUENT}lib       = $(bin)${CONSTITUENT}.lib
@@ -8,2 +9,15 @@
 	$(echo) "${CONSTITUENT} ok"
 
+cmt_${CONSTITUENT}_${HASPROTOTYPES} = 1
+
+#--------------------------------------
+
+!if defined (cmt_${CONSTITUENT}_has_prototypes)
+
+${CONSTITUENT}prototype : ${PROTOTARGET} ;
+
+!endif
+
+${CONSTITUENT}compile : ${OBJS} ;
+
+#-- end of libary_header ----------------
Index: CMT/HEAD/mgr/fragments/nmake/library_no_static
===================================================================
--- CMT/HEAD/mgr/fragments/nmake/library_no_static	(revision 630)
+++ CMT/HEAD/mgr/fragments/nmake/library_no_static	(revision 631)
@@ -53,7 +53,7 @@
 ${CONSTITUENT}installpdbname = $(library_prefix)${CONSTITUENT}$(library_suffix).pdb
 
-${CONSTITUENT} :: ${CONSTITUENT}install
+${CONSTITUENT} :: ${CONSTITUENT}install ;
 
-install :: ${CONSTITUENT}install
+install :: ${CONSTITUENT}install ;
 
 !IF "$(vsCONFIG)" == "Debug" 
@@ -91,5 +91,5 @@
 ##${CONSTITUENT}clean :: ${CONSTITUENT}uninstall
 
-uninstall :: ${CONSTITUENT}uninstall
+uninstall :: ${CONSTITUENT}uninstall ;
 
 ${CONSTITUENT}uninstall ::
