2008-09-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ Faster `make uninstall'; fast install for JAVA.
+ * lib/am/inst-vars.am (am__nobase_strip_setup)
+ (am__nobase_strip): New macros.
+ (am__nobase_list): Factorize.
+ * lib/am/data.am (uninstall-%DIR%%PRIMARY%): Use them, for a
+ constant number of forks per uninstall.
+ * lib/am/libs.am (uninstall-%DIR%LIBRARIES): Likewise.
+ * lib/am/lisp.am (uninstall-%DIR%LISP): Likewise.
+ * lib/am/progs.am (uninstall-%DIR%PROGRAMS): Fast uninstall.
+ * lib/am/python.am (uninstall-%DIR%PYTHON): Fast uninstall.
+ Echo all `rm' commands that are are executed.
+ * lib/am/java.am (install-%DIR%JAVA, uninstall-%DIR%JAVA):
+ Fast install and uninstall.
+
AIX ranlib dislikes spaces in the argument.
* lib/am/libs.am (install-%DIR%LIBRARIES): Fix instsh.test
failure on AIX due to ranlib and whitespace in the directory.
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
-am__nobase_list = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir " " files[dir] }'
+ END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
uninstall-dist_docDATA:
@$(NORMAL_UNINSTALL)
- @list='$(dist_doc_DATA)'; for p in $$list; do \
- $(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(docdir)/$$f'"; \
- rm -f "$(DESTDIR)$(docdir)/$$f"; \
- done
+ @list='$(dist_doc_DATA)'; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(docdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(docdir)" && rm -f $$files
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
-am__nobase_list = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir " " files[dir] }'
+ END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
uninstall-dist_perllibDATA:
@$(NORMAL_UNINSTALL)
- @list='$(dist_perllib_DATA)'; for p in $$list; do \
- $(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(perllibdir)/$$f'"; \
- rm -f "$(DESTDIR)$(perllibdir)/$$f"; \
- done
+ @list='$(dist_perllib_DATA)'; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(perllibdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(perllibdir)" && rm -f $$files
install-nodist_perllibDATA: $(nodist_perllib_DATA)
@$(NORMAL_INSTALL)
test -z "$(perllibdir)" || $(MKDIR_P) "$(DESTDIR)$(perllibdir)"
uninstall-nodist_perllibDATA:
@$(NORMAL_UNINSTALL)
- @list='$(nodist_perllib_DATA)'; for p in $$list; do \
- $(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(perllibdir)/$$f'"; \
- rm -f "$(DESTDIR)$(perllibdir)/$$f"; \
- done
+ @list='$(nodist_perllib_DATA)'; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(perllibdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(perllibdir)" && rm -f $$files
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
-am__nobase_list = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir " " files[dir] }'
+ END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
uninstall-dist_pkgvdataDATA:
@$(NORMAL_UNINSTALL)
- @list='$(dist_pkgvdata_DATA)'; for p in $$list; do \
- $(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(pkgvdatadir)/$$f'"; \
- rm -f "$(DESTDIR)$(pkgvdatadir)/$$f"; \
- done
+ @list='$(dist_pkgvdata_DATA)'; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(pkgvdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(pkgvdatadir)" && rm -f $$files
install-dist_scriptDATA: $(dist_script_DATA)
@$(NORMAL_INSTALL)
test -z "$(scriptdir)" || $(MKDIR_P) "$(DESTDIR)$(scriptdir)"
uninstall-dist_scriptDATA:
@$(NORMAL_UNINSTALL)
- @list='$(dist_script_DATA)'; for p in $$list; do \
- $(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(scriptdir)/$$f'"; \
- rm -f "$(DESTDIR)$(scriptdir)/$$f"; \
- done
+ @list='$(dist_script_DATA)'; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(scriptdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(scriptdir)" && rm -f $$files
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
-am__nobase_list = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir " " files[dir] }'
+ END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
uninstall-dist_amDATA:
@$(NORMAL_UNINSTALL)
- @list='$(dist_am_DATA)'; for p in $$list; do \
- $(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(amdir)/$$f'"; \
- rm -f "$(DESTDIR)$(amdir)/$$f"; \
- done
+ @list='$(dist_am_DATA)'; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(amdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(amdir)" && rm -f $$files
tags: TAGS
TAGS:
.PHONY uninstall-am: uninstall-%DIR%%PRIMARY%
uninstall-%DIR%%PRIMARY%:
@$(NORMAL_UNINSTALL)
-?!BASE? @$(am__vpath_adj_setup) \
- %BASE?@%list='$(%DIR%_%PRIMARY%)'; for p in $$list; do \
- %BASE?$(am__strip_dir):$(am__vpath_adj)% \
- echo " rm -f '$(DESTDIR)$(%NDIR%dir)/$$f'"; \
- rm -f "$(DESTDIR)$(%NDIR%dir)/$$f"; \
- done
+ @list='$(%DIR%_%PRIMARY%)'; \
+?BASE? files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+?!BASE? $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(%NDIR%dir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(%NDIR%dir)" && rm -f $$files
endif %?INSTALL%
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
## Number of files to install concurrently.
am__install_max = 40
+## Take a $list of nobase files, strip $(srcdir) from them.
+## Split apart in setup variable and an action that can be used
+## in backticks or in a pipe.
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
## Take a $list of nobase files, collect them, indexed by their
## srcdir-stripped dirnames. For up to am__install_max files, output
## a line containing the dirname and the files, space-separated.
## string concatenation in most shells, and should avoid line length
## limitations, while still offering only negligible performance impact
## through spawning more install commands than absolutely needed.
-am__nobase_list = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
+am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir " " files[dir] }'
+ END { for (dir in files) print dir, files[dir] }'
## Collect up to 40 files per line from stdin.
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
## A single .java file can be compiled into multiple .class files. So
## we just install all the .class files that got built into this
## directory. This is not optimal, but will have to do for now.
- @test -z "$(%DIR%_JAVA)" || for p in *.class; do \
- echo " $(INSTALL_DATA) '$$p' '$(DESTDIR)$(%NDIR%dir)/$$p'"; \
- $(INSTALL_DATA) "$$p" "$(DESTDIR)$(%NDIR%dir)/$$p" || exit $$?; \
- done
+ @test -n "$(%DIR%_JAVA)" || exit 0; \
+ set x *.class; shift; test "$$1" != "*.class" || exit 0; \
+ echo " $(INSTALL_DATA)" "$$@" "'$(DESTDIR)$(%NDIR%dir)/$$p'"; \
+ $(INSTALL_DATA) "$$@" "$(DESTDIR)$(%NDIR%dir)"
endif %?INSTALL%
.PHONY uninstall-am: uninstall-%DIR%JAVA
uninstall-%DIR%JAVA:
@$(NORMAL_UNINSTALL)
- @test -z "$(%DIR%_JAVA)" || for p in *.class; do \
- echo " rm -f '$(DESTDIR)$(%NDIR%dir)/$$p'"; \
- rm -f "$(DESTDIR)$(%NDIR%dir)/$$p"; \
- done
+ @test -n "$(%DIR%_JAVA)" || exit 0; \
+ set x *.class; shift; test "$$1" != "*.class" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(%NDIR%dir)' && rm -f" "$$@" ")"; \
+ cd "$(DESTDIR)$(%NDIR%dir)" && rm -f "$$@"
endif %?INSTALL%
.PHONY uninstall-am: uninstall-%DIR%LIBRARIES
uninstall-%DIR%LIBRARIES:
@$(NORMAL_UNINSTALL)
- @list='$(%DIR%_LIBRARIES)'; for p in $$list; do \
- %BASE?$(am__strip_dir):f=$$p;% \
- echo " rm -f '$(DESTDIR)$(%NDIR%dir)/$$f'"; \
- rm -f "$(DESTDIR)$(%NDIR%dir)/$$f"; \
- done
+ @list='$(%DIR%_LIBRARIES)'; \
+?BASE? files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+?!BASE? $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(%NDIR%dir)' && rm -f "$$files" )"; \
+ cd "$(DESTDIR)$(%NDIR%dir)" && rm -f $$files
endif %?INSTALL%
uninstall-%DIR%LISP:
@$(NORMAL_UNINSTALL)
## Do not uninstall anything if EMACS was not found.
- @if test "$(EMACS)" != no; then \
-?!BASE? $(am__vpath_adj_setup) \
- list='$(%DIR%_LISP)'; for p in $$list; do \
- %BASE?$(am__strip_dir):$(am__vpath_adj)% \
- echo " rm -f '$(DESTDIR)$(%NDIR%dir)/$$f' '$(DESTDIR)$(%NDIR%dir)/$${f}c'"; \
- rm -f "$(DESTDIR)$(%NDIR%dir)/$$f" "$(DESTDIR)$(%NDIR%dir)/$${f}c"; \
- done; \
- else : ; fi
+ @test "$(EMACS)" != no || exit 0; \
+ list='$(%DIR%_LISP)'; \
+?BASE? files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+?!BASE? $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
+ test -n "$$files" || exit 0; \
+ filesc=`echo "$$files" | sed 's|$$|c|'`; \
+ echo " ( cd '$(DESTDIR)$(%NDIR%dir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(%NDIR%dir)" && rm -f $$files || exit $$?; \
+ echo " ( cd '$(DESTDIR)$(%NDIR%dir)' && rm -f" $$filesc ")"; \
+ cd "$(DESTDIR)$(%NDIR%dir)" && rm -f $$filesc
endif %?INSTALL%
.PHONY uninstall-am: uninstall-%DIR%PROGRAMS
uninstall-%DIR%PROGRAMS:
@$(NORMAL_UNINSTALL)
- @list='$(%DIR%_PROGRAMS)'; for p in $$list; do \
-## Remove any leading directory before applying $(transform).
- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-## Prepend the directory part if nobase_ is used.
-?!BASE? f=`echo "$$p" | sed 's|[^/]*$$||'`"$$f"; \
- echo " rm -f '$(DESTDIR)$(%NDIR%dir)/$$f'"; \
- rm -f "$(DESTDIR)$(%NDIR%dir)/$$f"; \
- done
+ @list='$(%DIR%_PROGRAMS)'; \
+ files=`for p in $$list; do echo "$$p"; done | \
+## Remove any leading directory before applying $(transform),
+## but keep the directory part in the hold buffer, in order to
+## reapply it again afterwards in the nobase case. Append $(EXEEXT).
+ sed 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/; \
+?!BASE? x;s,[^/]*$$,,;G;s,\n,,; \
+ '`; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(%NDIR%dir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(%NDIR%dir)" && rm -f $$files
endif %?INSTALL%
.PHONY uninstall-am: uninstall-%DIR%PYTHON
uninstall-%DIR%PYTHON:
@$(NORMAL_UNINSTALL)
-?!BASE? @$(am__vpath_adj_setup) \
- %BASE?@%list='$(%DIR%_PYTHON)'; dlist=''; for p in $$list; do\
- %BASE?$(am__strip_dir):$(am__vpath_adj)% \
- rm -f "$(DESTDIR)$(%NDIR%dir)/$$f"; \
+ @list='$(%DIR%_PYTHON)'; \
+?BASE? files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+?!BASE? $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
+ test -n "$$files" || exit 0; \
+ filesc=`echo "$$files" | sed 's|$$|c|'`; \
+ fileso=`echo "$$files" | sed 's|$$|o|'`; \
+ echo " ( cd '$(DESTDIR)$(%NDIR%dir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(%NDIR%dir)" && rm -f $$files || exit $$?; \
## This is to remove the .pyc and .pyo byte compiled versions (a bit
## of a hack).
- rm -f "$(DESTDIR)$(%NDIR%dir)/$${f}c"; \
- rm -f "$(DESTDIR)$(%NDIR%dir)/$${f}o"; \
- done
+ echo " ( cd '$(DESTDIR)$(%NDIR%dir)' && rm -f" $$filesc ")"; \
+ cd "$(DESTDIR)$(%NDIR%dir)" && rm -f $$filesc || exit $$?; \
+ echo " ( cd '$(DESTDIR)$(%NDIR%dir)' && rm -f" $$fileso ")"; \
+ cd "$(DESTDIR)$(%NDIR%dir)" && rm -f $$fileso
endif %?INSTALL%
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
-am__nobase_list = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir " " files[dir] }'
+ END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
uninstall-dist_m4dataDATA:
@$(NORMAL_UNINSTALL)
- @list='$(dist_m4data_DATA)'; for p in $$list; do \
- $(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(m4datadir)/$$f'"; \
- rm -f "$(DESTDIR)$(m4datadir)/$$f"; \
- done
+ @list='$(dist_m4data_DATA)'; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(m4datadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(m4datadir)" && rm -f $$files
tags: TAGS
TAGS: