[m-rev.] diff: improve parallel mmake support for building the compiler

Simon Taylor stayl at cs.mu.OZ.AU
Sun Sep 2 20:34:45 AEST 2001


Estimated hours taken: 0.25

Mmakefile:
tests/Mmakefile:
tests/debugger/Mmakefile:
tests/general/Mmakefile:
tests/hard_coded/Mmakefile:
tests/invalid/Mmakefile:
	Prefix commands which recursively invoke mmake with `+'.
	This allow parallel make to work in the subdirectories,
	and avoids warnings such as:
		"gmake[1]: warning: jobserver unavailable: using -j1.
			Add `+' to parent make rule."
	Without the `+', the parent gmake does not attempt to
	communicate with the child gmake to decide how many processes
	the child gmake is allowed to run.

Index: Mmakefile
===================================================================
RCS file: /home/mercury1/repository/mercury/Mmakefile,v
retrieving revision 1.68
diff -u -u -r1.68 Mmakefile
--- Mmakefile	2001/07/09 04:58:49	1.68
+++ Mmakefile	2001/09/02 10:28:38
@@ -59,65 +59,65 @@
 dep_library: library/$(deps_subdir)library.dep
 
 library/$(deps_subdir)library.dep:
-	cd library && $(SUBDIR_MMAKE) depend
+	+cd library && $(SUBDIR_MMAKE) depend
 
 .PHONY: dep_browser
 dep_browser: browser/$(deps_subdir)mdb.dep
 
 browser/$(deps_subdir)mdb.dep:
-	cd browser && $(SUBDIR_MMAKE) depend
+	+cd browser && $(SUBDIR_MMAKE) depend
 
 .PHONY: dep_compiler
 dep_compiler: compiler/$(deps_subdir)mercury_compile.dep
 
 compiler/$(deps_subdir)mercury_compile.dep: library/$(deps_subdir)library.dep
-	cd compiler && $(SUBDIR_MMAKE) depend
+	+cd compiler && $(SUBDIR_MMAKE) depend
 
 .PHONY: dep_profiler
 dep_profiler: profiler/$(deps_subdir)mercury_profile.dep
 
 profiler/$(deps_subdir)mercury_profile.dep: library/$(deps_subdir)library.dep
-	cd profiler && $(SUBDIR_MMAKE) depend
+	+cd profiler && $(SUBDIR_MMAKE) depend
 
 .PHONY: dep_deep_profiler
 dep_deep_profiler: deep_profiler/$(deps_subdir)mdprof_cgi.dep \
 		deep_profiler/$(deps_subdir)mdprof_server.dep
 
 deep_profiler/$(deps_subdir)mdprof_cgi.dep: library/$(deps_subdir)library.dep
-	cd deep_profiler && $(SUBDIR_MMAKE) mdprof_cgi.depend
+	+cd deep_profiler && $(SUBDIR_MMAKE) mdprof_cgi.depend
 
 deep_profiler/$(deps_subdir)mdprof_server.dep: library/$(deps_subdir)library.dep
-	cd deep_profiler && $(SUBDIR_MMAKE) mdprof_server.depend
+	+cd deep_profiler && $(SUBDIR_MMAKE) mdprof_server.depend
 
 # depend_library MUST be done before depend_compiler and depend_profiler
 
 .PHONY: depend
 depend:
-	cd library && $(SUBDIR_MMAKE) depend
-	cd browser && $(SUBDIR_MMAKE) depend
-	cd compiler && $(SUBDIR_MMAKE) depend
-	cd profiler && $(SUBDIR_MMAKE) depend
-	cd deep_profiler && $(SUBDIR_MMAKE) depend
+	+cd library && $(SUBDIR_MMAKE) depend
+	+cd browser && $(SUBDIR_MMAKE) depend
+	+cd compiler && $(SUBDIR_MMAKE) depend
+	+cd profiler && $(SUBDIR_MMAKE) depend
+	+cd deep_profiler && $(SUBDIR_MMAKE) depend
 
 .PHONY: depend_library
 depend_library:
-	cd library && $(SUBDIR_MMAKE) depend
+	+cd library && $(SUBDIR_MMAKE) depend
 
 .PHONY: depend_browser
 depend_browser:
-	cd browser && $(SUBDIR_MMAKE) depend
+	+cd browser && $(SUBDIR_MMAKE) depend
 
 .PHONY: depend_compiler
 depend_compiler:
-	cd compiler && $(SUBDIR_MMAKE) depend
+	+cd compiler && $(SUBDIR_MMAKE) depend
 
 .PHONY: depend_profiler
 depend_profiler:
-	cd profiler && $(SUBDIR_MMAKE) depend
+	+cd profiler && $(SUBDIR_MMAKE) depend
 
 .PHONY: depend_deep_profiler
 depend_deep_profiler:
-	cd deep_profiler && $(SUBDIR_MMAKE) depend
+	+cd deep_profiler && $(SUBDIR_MMAKE) depend
 
 #-----------------------------------------------------------------------------#
 
@@ -126,53 +126,53 @@
 
 .PHONY: util
 util: scripts
-	cd util && $(SUBDIR_MMAKE)
+	+cd util && $(SUBDIR_MMAKE)
 
 .PHONY: scripts
 scripts:
-	cd scripts && $(SUBDIR_MMAKE)
+	+cd scripts && $(SUBDIR_MMAKE)
 
 .PHONY: boehm_gc
 boehm_gc: scripts
-	gc_grade=`scripts/ml --grade $(GRADE) --print-gc-grade`; \
+	+gc_grade=`scripts/ml --grade $(GRADE) --print-gc-grade`; \
 	cd boehm_gc && $(SUBDIR_MMAKE) GC_GRADE=$$gc_grade
 
 .PHONY: runtime
 runtime: scripts boehm_gc
-	cd runtime && $(SUBDIR_MMAKE)
+	+cd runtime && $(SUBDIR_MMAKE)
 
 .PHONY: library
 library: dep_library scripts util boehm_gc runtime
-	cd library && $(SUBDIR_MMAKE)
+	+cd library && $(SUBDIR_MMAKE)
 
 .PHONY: browser
 browser: dep_browser scripts util boehm_gc runtime library
-	cd browser && $(SUBDIR_MMAKE)
+	+cd browser && $(SUBDIR_MMAKE)
 
 .PHONY: runtime
 trace: scripts boehm_gc runtime library browser
-	cd trace && $(SUBDIR_MMAKE)
+	+cd trace && $(SUBDIR_MMAKE)
 
 .PHONY: compiler
 compiler: dep_compiler scripts util boehm_gc runtime library browser trace
-	cd compiler && $(SUBDIR_MMAKE)
+	+cd compiler && $(SUBDIR_MMAKE)
 
 .PHONY: libmmc
 libmmc: dep_compiler scripts util boehm_gc runtime library browser trace
-	cd compiler && $(SUBDIR_MMAKE) libmmc
+	+cd compiler && $(SUBDIR_MMAKE) libmmc
 
 .PHONY: doc
 doc: scripts util
-	cd doc && $(SUBDIR_MMAKE)
+	+cd doc && $(SUBDIR_MMAKE)
 
 .PHONY: profiler
 profiler: dep_profiler scripts util boehm_gc runtime library browser trace
-	cd profiler && $(SUBDIR_MMAKE)
+	+cd profiler && $(SUBDIR_MMAKE)
 
 .PHONY: deep_profiler
 deep_profiler: dep_deep_profiler scripts util boehm_gc runtime library \
 		browser trace
-	cd deep_profiler && $(SUBDIR_MMAKE)
+	+cd deep_profiler && $(SUBDIR_MMAKE)
 
 #-----------------------------------------------------------------------------#
 
@@ -181,23 +181,23 @@
 
 .PHONY: tags_compiler
 tags_compiler:
-	cd compiler && $(SUBDIR_MMAKE) tags
+	+cd compiler && $(SUBDIR_MMAKE) tags
 
 .PHONY: tags_library
 tags_library:
-	cd library && $(SUBDIR_MMAKE) tags
+	+cd library && $(SUBDIR_MMAKE) tags
 
 .PHONY: tags_browser
 tags_browser:
-	cd browser && $(SUBDIR_MMAKE) tags
+	+cd browser && $(SUBDIR_MMAKE) tags
 
 .PHONY: tags_profiler
 tags_profiler:
-	cd profiler && $(SUBDIR_MMAKE) tags
+	+cd profiler && $(SUBDIR_MMAKE) tags
 
 .PHONY: tags_deep_profiler
 tags_deep_profiler:
-	cd deep_profiler && $(SUBDIR_MMAKE) tags
+	+cd deep_profiler && $(SUBDIR_MMAKE) tags
 
 #-----------------------------------------------------------------------------#
 
@@ -248,23 +248,23 @@
 tar: README INSTALL
 	touch Mmake.params
 	cd util && mmake
-	cd runtime && $(SUBDIR_MMAKE) cs $(RT_LIB_NAME).init
-	cd library && $(SUBDIR_MMAKE) depend
-	cd library && $(SUBDIR_MMAKE) all-ints cs $(STD_LIB_NAME).init tags
-	cd browser && $(SUBDIR_MMAKE) depend
-	cd browser && $(SUBDIR_MMAKE) all-ints cs $(BROWSER_LIB_NAME).init tags
-	cd trace && $(SUBDIR_MMAKE) cs
-	cd compiler && $(SUBDIR_MMAKE) depend
-	cd compiler && $(SUBDIR_MMAKE) cs tags
-	cd profiler && $(SUBDIR_MMAKE) depend
-	cd profiler && $(SUBDIR_MMAKE) cs tags
-	cd deep_profiler && $(SUBDIR_MMAKE) depend
-	cd deep_profiler && $(SUBDIR_MMAKE) cs tags
-	cd doc && $(SUBDIR_MMAKE) info html dvi mdb_doc
-	cd bindist && $(SUBDIR_MMAKE) bindist.configure
+	+cd runtime && $(SUBDIR_MMAKE) cs $(RT_LIB_NAME).init
+	+cd library && $(SUBDIR_MMAKE) depend
+	+cd library && $(SUBDIR_MMAKE) all-ints cs $(STD_LIB_NAME).init tags
+	+cd browser && $(SUBDIR_MMAKE) depend
+	+cd browser && $(SUBDIR_MMAKE) all-ints cs $(BROWSER_LIB_NAME).init tags
+	+cd trace && $(SUBDIR_MMAKE) cs
+	+cd compiler && $(SUBDIR_MMAKE) depend
+	+cd compiler && $(SUBDIR_MMAKE) cs tags
+	+cd profiler && $(SUBDIR_MMAKE) depend
+	+cd profiler && $(SUBDIR_MMAKE) cs tags
+	+cd deep_profiler && $(SUBDIR_MMAKE) depend
+	+cd deep_profiler && $(SUBDIR_MMAKE) cs tags
+	+cd doc && $(SUBDIR_MMAKE) info html dvi mdb_doc
+	+cd bindist && $(SUBDIR_MMAKE) bindist.configure
 	# the following command might fail on Windows?
 	-cd bindist && $(SUBDIR_MMAKE) bindist.build_vars
-	cd extras/dynamic_linking && $(SUBSUBDIR_MMAKE) sources
+	+cd extras/dynamic_linking && $(SUBSUBDIR_MMAKE) sources
 	# clean up
 	cd scripts && mmake realclean
 	cd scripts && mmake canonical_grade
@@ -349,48 +349,48 @@
  
 .PHONY: install_scripts
 install_scripts: scripts
-	cd scripts && $(SUBDIR_MMAKE) install
+	+cd scripts && $(SUBDIR_MMAKE) install
 
 .PHONY: install_util
 install_util: util
-	cd util && $(SUBDIR_MMAKE) install
+	+cd util && $(SUBDIR_MMAKE) install
 
 .PHONY: install_runtime
 install_runtime: runtime
-	cd runtime && $(SUBDIR_MMAKE) install
+	+cd runtime && $(SUBDIR_MMAKE) install
 
 .PHONY: install_trace
 install_trace: trace
-	cd trace && $(SUBDIR_MMAKE) install
+	+cd trace && $(SUBDIR_MMAKE) install
 
 .PHONY: install_boehm_gc
 install_boehm_gc: boehm_gc
-	gc_grade=`scripts/ml --grade $(GRADE) --print-gc-grade`; \
+	+gc_grade=`scripts/ml --grade $(GRADE) --print-gc-grade`; \
 	cd boehm_gc && $(SUBDIR_MMAKE) install GC_GRADE=$$gc_grade
 
 .PHONY: install_library
 install_library: dep_library library
-	cd library && $(SUBDIR_MMAKE) install
+	+cd library && $(SUBDIR_MMAKE) install
 
 .PHONY: install_browser
 install_browser: dep_browser browser
-	cd browser && $(SUBDIR_MMAKE) install
+	+cd browser && $(SUBDIR_MMAKE) install
 
 .PHONY: install_compiler
 install_compiler: dep_compiler compiler
-	cd compiler && $(SUBDIR_MMAKE) install
+	+cd compiler && $(SUBDIR_MMAKE) install
 
 .PHONY: install_doc
 install_doc: doc
-	cd doc && $(SUBDIR_MMAKE) install
+	+cd doc && $(SUBDIR_MMAKE) install
 
 .PHONY: install_profiler
 install_profiler: profiler
-	cd profiler && $(SUBDIR_MMAKE) install
+	+cd profiler && $(SUBDIR_MMAKE) install
 
 .PHONY: install_deep_profiler
 install_deep_profiler: deep_profiler
-	cd deep_profiler && $(SUBDIR_MMAKE) install
+	+cd deep_profiler && $(SUBDIR_MMAKE) install
 
 .PHONY: install_grades
 install_grades: scripts
@@ -417,7 +417,7 @@
 	# runs the newly installed compiler, rather than using the
 	# bootstrap compiler.
 	#
-	for grade in x $(LIBGRADES); do \
+	+for grade in x $(LIBGRADES); do \
 	    if [ "$$grade" != "x" ]; then \
 	    	gc_grade=`scripts/ml --grade $$grade --print-gc-grade`; \
 	        ( cd boehm_gc && \
@@ -479,7 +479,7 @@
 	mkdir tmp_dir && \
 	{ mv -f *.dir *.dep *.h *.c *.$O *.pic_o *.$A *.so \
 		Mercury/cs/*.c Mercury/os/*.$O tmp_dir || true; } && \
-	for grade in $(GRADE) $(LIBGRADES); do \
+	+for grade in $(GRADE) $(LIBGRADES); do \
 	        $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade depend && \
 	        $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade install_split_library || \
 			{ scripts/mercury_cleanup_install; exit 1; }; \
@@ -535,9 +535,9 @@
 
 .PHONY: uninstall
 uninstall:
-	cd scripts; $(SUBDIR_MMAKE) uninstall
-	cd util; $(SUBDIR_MMAKE) uninstall
-	cd doc; $(SUBDIR_MMAKE) uninstall
+	+cd scripts; $(SUBDIR_MMAKE) uninstall
+	+cd util; $(SUBDIR_MMAKE) uninstall
+	+cd doc; $(SUBDIR_MMAKE) uninstall
 	-rm -r $(INSTALL_LIBDIR)
 
 #-----------------------------------------------------------------------------#
@@ -553,14 +553,14 @@
 .PHONY: clean_subdirs
 clean_subdirs:
 	rm -rf runtime/tmp_dir library/tmp_dir browser/tmp_dir trace/tmp_dir
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		if [ "$$dir" = scripts ]; then continue; fi; \
 		(cd $$dir; $(SUBDIR_MMAKE) clean) \
 	done
 
 .PHONY: clean_tests
 clean_tests:
-	if test -d tests; then \
+	+if test -d tests; then \
 		(cd tests; $(MMAKE) clean) \
 	fi
 
@@ -572,11 +572,11 @@
 .PHONY: realclean_subdirs
 realclean_subdirs: clean_subdirs
 	rm -rf stage[1-3]
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		if [ "$$dir" = scripts ]; then continue; fi; \
 		(cd $$dir; $(SUBDIR_MMAKE) realclean) \
 	done
-	cd scripts; $(SUBDIR_MMAKE) realclean
+	+cd scripts; $(SUBDIR_MMAKE) realclean
 
 .PHONY: realclean_config
 realclean_config:
@@ -584,7 +584,7 @@
 
 .PHONY: realclean_tests
 realclean_tests:
-	if test -d tests; then \
+	+if test -d tests; then \
 		(cd tests; $(MMAKE) realclean) \
 	fi
 
Index: tests/Mmakefile
===================================================================
RCS file: /home/mercury1/repository/tests/Mmakefile,v
retrieving revision 1.4
diff -u -u -r1.4 Mmakefile
--- tests/Mmakefile	2001/03/05 00:15:15	1.4
+++ tests/Mmakefile	2001/09/02 08:07:10
@@ -6,32 +6,32 @@
 # Generate the .exp files that are used as a basis of comparison to check
 # the correctness of the code emitted by the Mercury compiler.
 exp:
-	for dir in $(NUPROLOG_SUBDIRS); do \
+	+for dir in $(NUPROLOG_SUBDIRS); do \
 		(cd $$dir && mmake $(MMAKEFLAGS) exp) || exit 1; \
 	done
 
 # run the tests
 check:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && mmake $(MMAKEFLAGS) check) || exit 1; \
 	done
 
 dep:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && mmake $(MMAKEFLAGS) dep) || exit 1; \
 	done
 
 depend:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && mmake $(MMAKEFLAGS) depend) || exit 1; \
 	done
 
 realclean:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && mmake $(MMAKEFLAGS) realclean) || exit 1; \
 	done
 
 clean:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && mmake $(MMAKEFLAGS) clean) || exit 1; \
 	done
Index: tests/debugger/Mmakefile
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/Mmakefile,v
retrieving revision 1.53
diff -u -u -r1.53 Mmakefile
--- tests/debugger/Mmakefile	2001/05/31 06:00:21	1.53
+++ tests/debugger/Mmakefile	2001/09/02 08:17:41
@@ -296,32 +296,32 @@
 SUBDIRS = declarative
 
 check_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) check) || exit 1; \
 	done
 
 dep_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) dep) || exit 1; \
 	done
 
 depend_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) depend) || exit 1; \
 	done
 
 realclean_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) realclean) || exit 1; \
 	done
 
 clean_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) clean) || exit 1; \
 	done
 
 all_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) all) || exit 1; \
 	done
 
Index: tests/general/Mmakefile
===================================================================
RCS file: /home/mercury1/repository/tests/general/Mmakefile,v
retrieving revision 1.33
diff -u -u -r1.33 Mmakefile
--- tests/general/Mmakefile	2001/04/10 01:17:23	1.33
+++ tests/general/Mmakefile	2001/09/02 08:24:41
@@ -136,32 +136,32 @@
 SUBDIRS = accumulator
 
 check_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) check) || exit 1; \
 	done
 
 dep_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) dep) || exit 1; \
 	done
 
 depend_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) depend) || exit 1; \
 	done
 
 realclean_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) realclean) || exit 1; \
 	done
 
 clean_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) clean) || exit 1; \
 	done
 
 all_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) all) || exit 1; \
 	done
 
Index: tests/hard_coded/Mmakefile
===================================================================
RCS file: /home/mercury1/repository/tests/hard_coded/Mmakefile,v
retrieving revision 1.129
diff -u -u -r1.129 Mmakefile
--- tests/hard_coded/Mmakefile	2001/08/28 09:27:42	1.129
+++ tests/hard_coded/Mmakefile	2001/09/02 08:25:07
@@ -296,32 +296,32 @@
 SUBDIRS = typeclasses sub-modules exceptions purity
 
 dep_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) dep) || exit 1; \
 	done
 
 depend_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) depend) || exit 1; \
 	done
 
 check_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) check) || exit 1; \
 	done
 
 all_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) all) || exit 1; \
 	done
 
 clean_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) clean) || exit 1; \
 	done
 
 realclean_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) realclean) || exit 1; \
 	done
 
Index: tests/invalid/Mmakefile
===================================================================
RCS file: /home/mercury1/repository/tests/invalid/Mmakefile,v
retrieving revision 1.95
diff -u -u -r1.95 Mmakefile
--- tests/invalid/Mmakefile	2001/08/23 06:05:09	1.95
+++ tests/invalid/Mmakefile	2001/09/02 08:25:33
@@ -230,32 +230,32 @@
 SUBDIRS = purity
 
 dep_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) dep) || exit 1; \
 	done
 
 depend_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) depend) || exit 1; \
 	done
 
 check_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) check) || exit 1; \
 	done
 
 all_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) all) || exit 1; \
 	done
 
 clean_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) clean) || exit 1; \
 	done
 
 realclean_subdirs:
-	for dir in $(SUBDIRS); do \
+	+for dir in $(SUBDIRS); do \
 		(cd $$dir && $(SUBDIR_MMAKE) realclean) || exit 1; \
 	done
 
--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list