[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