Parallelize clean rules using GNU make features
* Makefile.in: (submake_template): New definition. (mostlyclean_dirs, clean_dirs, distclean_dirs, maintainer_clean_dirs): New variables. (mostlyclean, clean, distclean, bootstrap-clean, maintainer-clean) (extraclean): Define using each subdirectory as a prequisite. * lib/Makefile.am (bootstrap-clean): * doc/emacs/Makefile.in (bootstrap-clean): * doc/lispintro/Makefile.in (bootstrap-clean): * doc/lispref/Makefile.in (bootstrap-clean): * doc/misc/Makefile.in (bootstrap-clean): * lib-src/Makefile.in (bootstrap-clean): * lwlib/Makefile.in (bootstrap-clean): * nextstep/Makefile.in (bootstrap-clean): * nt/Makefile.in (bootstrap-clean): * oldXMenu/Makefile.in (bootstrap-clean): New rules, for symmetry/simplicity. * lwlib/Makefile.in (mostlyclean, clean, distclean, maintainer-clean): * oldXMenu/Makefile.in (mostlyclean, clean, distclean, maintainer-clean, tags): Declare as PHONY.
This commit is contained in:
parent
90de50e270
commit
0e6929ecab
21 changed files with 131 additions and 85 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
2014-06-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in: Parallelize clean rules using GNU make features.
|
||||
(submake_template): New definition.
|
||||
(mostlyclean_dirs, clean_dirs, distclean_dirs, maintainer_clean_dirs):
|
||||
New variables.
|
||||
(mostlyclean, clean, distclean, bootstrap-clean, maintainer-clean)
|
||||
(extraclean): Define using each subdirectory as a prequisite.
|
||||
* lib/Makefile.am (bootstrap-clean): New.
|
||||
|
||||
2014-06-15 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Port part of the AIX fix to Solaris (Bug#17598).
|
||||
|
|
106
Makefile.in
106
Makefile.in
|
@ -770,22 +770,27 @@ uninstall-nt:
|
|||
|
||||
.PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean extraclean
|
||||
|
||||
## Eg:
|
||||
## src_clean:
|
||||
## make -C src clean
|
||||
define submake_template
|
||||
.PHONY: $(1)_$(2)
|
||||
$(1)_$(2):
|
||||
$$(MAKE) -C $(1) $(2)
|
||||
endef
|
||||
|
||||
### `mostlyclean'
|
||||
### Like `clean', but may refrain from deleting a few files that people
|
||||
### normally don't want to recompile. For example, the `mostlyclean'
|
||||
### target for GCC does not delete `libgcc.a', because recompiling it
|
||||
### is rarely necessary and takes a lot of time.
|
||||
mostlyclean:
|
||||
cd src && $(MAKE) mostlyclean
|
||||
cd oldXMenu && $(MAKE) mostlyclean
|
||||
cd lwlib && $(MAKE) mostlyclean
|
||||
cd lib && $(MAKE) mostlyclean
|
||||
cd lib-src && $(MAKE) mostlyclean
|
||||
cd nt && $(MAKE) mostlyclean
|
||||
-cd doc/emacs && $(MAKE) mostlyclean
|
||||
-cd doc/misc && $(MAKE) mostlyclean
|
||||
-cd doc/lispref && $(MAKE) mostlyclean
|
||||
-cd doc/lispintro && $(MAKE) mostlyclean
|
||||
mostlyclean_dirs = src oldXMenu lwlib lib lib-src nt doc/emacs doc/misc \
|
||||
doc/lispref doc/lispintro
|
||||
|
||||
$(foreach dir,$(mostlyclean_dirs),$(eval $(call submake_template,$(dir),mostlyclean)))
|
||||
|
||||
mostlyclean: $(mostlyclean_dirs:=_mostlyclean)
|
||||
|
||||
|
||||
### `clean'
|
||||
### Delete all files from the current directory that are normally
|
||||
|
@ -795,24 +800,18 @@ mostlyclean:
|
|||
### with them.
|
||||
###
|
||||
### Delete `.dvi' files here if they are not part of the distribution.
|
||||
clean:
|
||||
clean_dirs = $(mostlyclean_dirs) nextstep
|
||||
|
||||
$(foreach dir,$(clean_dirs),$(eval $(call submake_template,$(dir),clean)))
|
||||
|
||||
clean: $(clean_dirs:=_clean)
|
||||
-rm -f etc/emacs.tmpdesktop
|
||||
cd src && $(MAKE) clean
|
||||
cd oldXMenu && $(MAKE) clean
|
||||
cd lwlib && $(MAKE) clean
|
||||
cd lib && $(MAKE) clean
|
||||
cd lib-src && $(MAKE) clean
|
||||
cd nt && $(MAKE) clean
|
||||
-cd doc/emacs && $(MAKE) clean
|
||||
-cd doc/misc && $(MAKE) clean
|
||||
-cd doc/lispref && $(MAKE) clean
|
||||
-cd doc/lispintro && $(MAKE) clean
|
||||
cd nextstep && $(MAKE) clean
|
||||
|
||||
### `bootclean'
|
||||
### Delete all files that need to be remade for a clean bootstrap.
|
||||
top_bootclean=\
|
||||
rm -f config.cache config.log
|
||||
|
||||
### `distclean'
|
||||
### Delete all files from the current directory that are created by
|
||||
### configuring or building the program. If you have unpacked the
|
||||
|
@ -822,44 +821,25 @@ top_bootclean=\
|
|||
top_distclean=\
|
||||
${top_bootclean}; \
|
||||
rm -f config.status config.log~ Makefile stamp-h1 ${SUBDIR_MAKEFILES}
|
||||
distclean:
|
||||
cd src && $(MAKE) distclean
|
||||
cd oldXMenu && $(MAKE) distclean
|
||||
cd lwlib && $(MAKE) distclean
|
||||
cd lib && $(MAKE) distclean
|
||||
cd lib-src && $(MAKE) distclean
|
||||
cd nt && $(MAKE) distclean
|
||||
cd doc/emacs && $(MAKE) distclean
|
||||
cd doc/misc && $(MAKE) distclean
|
||||
cd doc/lispref && $(MAKE) distclean
|
||||
cd doc/lispintro && $(MAKE) distclean
|
||||
cd leim && $(MAKE) distclean
|
||||
cd lisp && $(MAKE) distclean
|
||||
cd nextstep && $(MAKE) distclean
|
||||
|
||||
distclean_dirs = $(clean_dirs) leim lisp
|
||||
|
||||
$(foreach dir,$(distclean_dirs),$(eval $(call submake_template,$(dir),distclean)))
|
||||
|
||||
distclean: $(distclean_dirs:=_distclean)
|
||||
for dir in test/automated admin/grammars admin/unidata; do \
|
||||
[ ! -d $$dir ] || (cd $$dir && $(MAKE) distclean); \
|
||||
[ ! -d $$dir ] || $(MAKE) -C $$dir distclean; \
|
||||
done
|
||||
${top_distclean}
|
||||
|
||||
### `bootstrap-clean'
|
||||
### Delete everything that can be reconstructed by `make' and that
|
||||
### needs to be deleted in order to force a bootstrap from a clean state.
|
||||
bootstrap-clean:
|
||||
cd src && $(MAKE) bootstrap-clean
|
||||
cd oldXMenu && $(MAKE) maintainer-clean
|
||||
cd lwlib && $(MAKE) maintainer-clean
|
||||
cd lib && $(MAKE) maintainer-clean
|
||||
cd lib-src && $(MAKE) maintainer-clean
|
||||
cd nt && $(MAKE) maintainer-clean
|
||||
-cd doc/emacs && $(MAKE) maintainer-clean
|
||||
-cd doc/misc && $(MAKE) maintainer-clean
|
||||
-cd doc/lispref && $(MAKE) maintainer-clean
|
||||
-cd doc/lispintro && $(MAKE) maintainer-clean
|
||||
cd leim && $(MAKE) bootstrap-clean
|
||||
cd lisp && $(MAKE) bootstrap-clean
|
||||
cd nextstep && $(MAKE) maintainer-clean
|
||||
$(foreach dir,$(distclean_dirs),$(eval $(call submake_template,$(dir),bootstrap-clean)))
|
||||
|
||||
bootstrap-clean: $(distclean_dirs:=_bootstrap-clean)
|
||||
for dir in test/automated admin/grammars admin/unidata; do \
|
||||
[ ! -d $$dir ] || (cd $$dir && $(MAKE) bootstrap-clean); \
|
||||
[ ! -d $$dir ] || $(MAKE) -C $$dir bootstrap-clean; \
|
||||
done
|
||||
[ ! -f config.log ] || mv -f config.log config.log~
|
||||
rm -rf ${srcdir}/info
|
||||
|
@ -879,12 +859,14 @@ bootstrap-clean:
|
|||
top_maintainer_clean=\
|
||||
${top_distclean}; \
|
||||
rm -fr autom4te.cache
|
||||
maintainer-clean: bootstrap-clean
|
||||
cd src && $(MAKE) maintainer-clean
|
||||
cd leim && $(MAKE) maintainer-clean
|
||||
cd lisp && $(MAKE) maintainer-clean
|
||||
|
||||
maintainer_clean_dirs = src leim lisp
|
||||
|
||||
$(foreach dir,$(maintainer_clean_dirs),$(eval $(call submake_template,$(dir),maintainer-clean)))
|
||||
|
||||
maintainer-clean: bootstrap-clean $(maintainer_clean_dirs:=_maintainer-clean)
|
||||
for dir in test/automated admin/grammars admin/unidata; do \
|
||||
[ ! -d $$dir ] || (cd $$dir && $(MAKE) maintainer-clean); \
|
||||
[ ! -d $$dir ] || $(MAKE) -C $$dir maintainer-clean; \
|
||||
done
|
||||
${top_maintainer_clean}
|
||||
|
||||
|
@ -892,8 +874,12 @@ maintainer-clean: bootstrap-clean
|
|||
### says GCC supports it, and that's where the configuration part of
|
||||
### the coding standards seem to come from. It's like distclean, but
|
||||
### it deletes backup and autosave files too.
|
||||
extraclean:
|
||||
for i in ${SUBDIR}; do (cd $$i; $(MAKE) extraclean); done
|
||||
### Note that we abuse this in some subdirectories (eg leim),
|
||||
### to delete some generated files that are slow to rebuild.
|
||||
$(foreach dir,$(SUBDIR),$(eval $(call submake_template,$(dir),extraclean)))
|
||||
|
||||
## FIXME this is busted because most of these do not have extraclean rules.
|
||||
extraclean: $(SUBDIR:=_extraclean)
|
||||
${top_maintainer_clean}
|
||||
-rm -f config-tmp-*
|
||||
-rm -f *~ \#*
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2014-06-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (bootstrap-clean): New.
|
||||
|
||||
2014-06-10 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (INFO_EXT): Remove and replace by ".info" throughout.
|
||||
|
|
|
@ -181,7 +181,7 @@ emacs-xtra.dvi: $(EMACS_XTRA)
|
|||
emacs-xtra.pdf: $(EMACS_XTRA)
|
||||
$(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-xtra.texi
|
||||
|
||||
.PHONY: mostlyclean clean distclean maintainer-clean infoclean
|
||||
.PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean infoclean
|
||||
|
||||
## Temp files.
|
||||
mostlyclean:
|
||||
|
@ -203,7 +203,7 @@ infoclean:
|
|||
$(buildinfodir)/emacs.info-[1-9] \
|
||||
$(buildinfodir)/emacs.info-[1-9][0-9]
|
||||
|
||||
maintainer-clean: distclean infoclean
|
||||
bootstrap-clean maintainer-clean: distclean infoclean
|
||||
|
||||
.PHONY: dist
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2014-06-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (bootstrap-clean): New.
|
||||
|
||||
2014-06-10 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (INFO_EXT): Remove and replace by ".info" throughout.
|
||||
|
|
|
@ -101,7 +101,7 @@ emacs-lisp-intro.pdf: ${srcs}
|
|||
emacs-lisp-intro.html: ${srcs}
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/emacs-lisp-intro.texi
|
||||
|
||||
.PHONY: mostlyclean clean distclean maintainer-clean infoclean
|
||||
.PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean infoclean
|
||||
|
||||
mostlyclean:
|
||||
rm -f *.aux *.log *.toc *.cp *.cps *.fn *.fns *.ky *.kys \
|
||||
|
@ -119,7 +119,7 @@ infoclean:
|
|||
$(buildinfodir)/eintr.info \
|
||||
$(buildinfodir)/eintr.info-[1-9]
|
||||
|
||||
maintainer-clean: distclean infoclean
|
||||
bootstrap-clean maintainer-clean: distclean infoclean
|
||||
|
||||
.PHONY: dist
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2014-06-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (bootstrap-clean): New.
|
||||
|
||||
2014-06-15 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* commands.texi (Accessing Mouse): Improve the wording of the
|
||||
|
|
|
@ -153,7 +153,7 @@ elisp.html: $(srcs)
|
|||
elisp.pdf: $(srcs)
|
||||
$(ENVADD) $(TEXI2PDF) $(srcdir)/elisp.texi
|
||||
|
||||
.PHONY: mostlyclean clean distclean maintainer-clean infoclean
|
||||
.PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean infoclean
|
||||
|
||||
## [12] stuff is from two-volume.make.
|
||||
mostlyclean:
|
||||
|
@ -175,7 +175,7 @@ infoclean:
|
|||
$(buildinfodir)/elisp.info-[1-9] \
|
||||
$(buildinfodir)/elisp.info-[1-9][0-9]
|
||||
|
||||
maintainer-clean: distclean infoclean
|
||||
bootstrap-clean maintainer-clean: distclean infoclean
|
||||
|
||||
.PHONY: dist
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2014-06-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (bootstrap-clean): New.
|
||||
|
||||
2014-06-12 Vincent Belaïche <vincentb1@users.sourceforge.net>
|
||||
|
||||
* ses.texi: Adding documentation for SES local printer functions.
|
||||
|
|
|
@ -209,7 +209,7 @@ ${buildinfodir}/tramp.info tramp.html: EXTRA_OPTS = -D emacs
|
|||
${buildinfodir}/tramp.info tramp.html: ${srcdir}/trampver.texi
|
||||
|
||||
|
||||
.PHONY: mostlyclean clean distclean maintainer-clean
|
||||
.PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean
|
||||
|
||||
mostlyclean:
|
||||
rm -f *.aux *.log *.toc *.c[mp] *.c[mp]s *.fn *.fns \
|
||||
|
@ -235,7 +235,7 @@ infoclean:
|
|||
$(buildinfodir)/$${file}-[1-9][0-9]; \
|
||||
done
|
||||
|
||||
maintainer-clean: distclean infoclean
|
||||
bootstrap-clean maintainer-clean: distclean infoclean
|
||||
|
||||
dist:
|
||||
rm -rf emacs-misc-${version}
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2014-06-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (bootstrap-clean): New.
|
||||
|
||||
2014-06-13 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (../lib/libgnu.a):
|
||||
|
|
|
@ -255,7 +255,7 @@ $(DESTDIR)${archlibdir}: all
|
|||
fi
|
||||
|
||||
.PHONY: install uninstall mostlyclean clean distclean maintainer-clean
|
||||
.PHONY: extraclean check tags
|
||||
.PHONY: bootstrap-clean extraclean check tags
|
||||
|
||||
install: $(DESTDIR)${archlibdir}
|
||||
@echo
|
||||
|
@ -289,7 +289,7 @@ distclean: clean
|
|||
-rm -f TAGS
|
||||
-rm -f Makefile blessmail
|
||||
|
||||
maintainer-clean: distclean
|
||||
bootstrap-clean maintainer-clean: distclean
|
||||
true
|
||||
|
||||
extraclean: maintainer-clean
|
||||
|
|
|
@ -16,3 +16,7 @@ include gnulib.mk
|
|||
|
||||
libgnu_a_SOURCES += openat-die.c save-cwd.c
|
||||
endif
|
||||
|
||||
.PHONY: bootstrap-clean
|
||||
|
||||
bootstrap-clean: maintainer-clean
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2014-06-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (mostlyclean, clean, distclean, maintainer-clean):
|
||||
Declare as PHONY.
|
||||
(bootstrap-clean): New.
|
||||
|
||||
2014-06-13 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in ($(globals_h)):
|
||||
|
|
|
@ -91,13 +91,16 @@ lwlib-Xm.o: $(src_h) lwlib-Xm.c lwlib-Xm.h lwlib.h lwlib-int.h lwlib-utils.h
|
|||
xlwmenu.o: $(src_h) xlwmenu.c xlwmenu.h lwlib.h xlwmenuP.h \
|
||||
$(srcdir)/../src/xterm.h
|
||||
|
||||
mostlyclean:
|
||||
|
||||
.PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean
|
||||
|
||||
clean mostlyclean:
|
||||
rm -f *.o liblw.a \#*
|
||||
|
||||
clean: mostlyclean
|
||||
distclean: clean
|
||||
rm -f Makefile
|
||||
maintainer-clean: distclean
|
||||
|
||||
bootstrap-clean maintainer-clean: distclean
|
||||
rm -f TAGS
|
||||
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2014-06-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (bootstrap-clean): New.
|
||||
|
||||
2014-03-13 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* templates/Info.plist.in: Make it strictly valid xml. (Bug#17002)
|
||||
|
|
|
@ -52,7 +52,7 @@ ${ns_appbindir}/Emacs: ${ns_appdir} ${ns_check_file} ../src/emacs${EXEEXT}
|
|||
all: ${ns_appdir} ${ns_appbindir}/Emacs
|
||||
|
||||
|
||||
.PHONY: clean distclean maintainer-clean
|
||||
.PHONY: clean distclean bootstrap-clean maintainer-clean
|
||||
|
||||
clean:
|
||||
rm -rf ${ns_appdir}
|
||||
|
@ -64,6 +64,6 @@ distclean: clean
|
|||
Cocoa/Emacs.base/Contents/Info.plist \
|
||||
Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings
|
||||
|
||||
maintainer-clean: distclean
|
||||
bootstrap-clean maintainer-clean: distclean
|
||||
|
||||
### Makefile.in ends here
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2014-06-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (bootstrap-clean): New.
|
||||
|
||||
2014-06-05 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
* inc/ms-w32.h (POLL_FOR_INPUT): Define with HAVE_WINDOW_SYSTEM.
|
||||
|
|
|
@ -162,7 +162,7 @@ $(DESTDIR)${archlibdir}: all
|
|||
fi
|
||||
|
||||
.PHONY: install uninstall mostlyclean clean distclean maintainer-clean
|
||||
.PHONY: extraclean check tags
|
||||
.PHONY: bootstrap-clean extraclean check tags
|
||||
|
||||
install: $(DESTDIR)${archlibdir}
|
||||
@echo
|
||||
|
@ -193,7 +193,7 @@ distclean: clean
|
|||
-rm -f TAGS
|
||||
-rm -f Makefile
|
||||
|
||||
maintainer-clean: distclean
|
||||
bootstrap-clean maintainer-clean: distclean
|
||||
true
|
||||
|
||||
extraclean: maintainer-clean
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2014-06-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (mostlyclean, clean, distclean, maintainer-clean, tags):
|
||||
Declare as PHONY.
|
||||
(boostrap-clean): New.
|
||||
|
||||
2013-10-24 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (abs_top_srcdir): New, set by configure.
|
||||
|
|
|
@ -134,14 +134,17 @@ XDestAssoc.o: XDestAssoc.c X10.h
|
|||
XMakeAssoc.o: XMakeAssoc.c X10.h
|
||||
insque.o: insque.c
|
||||
|
||||
FRC.mostlyclean:
|
||||
mostlyclean: FRC.mostlyclean
|
||||
rm -f libXMenu11.a ${OBJS} ${EXTRA}
|
||||
clean: mostlyclean
|
||||
distclean: clean
|
||||
rm -f Makefile
|
||||
maintainer-clean: distclean
|
||||
.PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean
|
||||
|
||||
mostlyclean:
|
||||
rm -f libXMenu11.a ${OBJS} ${EXTRA}
|
||||
|
||||
clean: mostlyclean
|
||||
|
||||
boostrap-clean maintainer-clean distclean: clean
|
||||
rm -f Makefile
|
||||
|
||||
.PHONY: tags
|
||||
tags:
|
||||
$(TAGS) -t *.[ch]
|
||||
.PHONY: tags
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue