]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
Faster `make uninstall'; fast install for JAVA.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sun, 7 Sep 2008 07:25:02 +0000 (09:25 +0200)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sun, 7 Sep 2008 07:33:07 +0000 (09:33 +0200)
* 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.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13 files changed:
ChangeLog
doc/Makefile.in
lib/Automake/Makefile.in
lib/Makefile.in
lib/am/Makefile.in
lib/am/data.am
lib/am/inst-vars.am
lib/am/java.am
lib/am/libs.am
lib/am/lisp.am
lib/am/progs.am
lib/am/python.am
m4/Makefile.in

index 78b458b04255412f65a6bd3da26ebd0e7d073749..4266e4dc66bf9010c349edd85e80bf1af4e94349 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 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.
index a57c94292a087ffb2352b78ca0d6e6c8b76ab22e..9fafd09ea07c776fbccc85a295821c15e845db41 100644 (file)
@@ -74,14 +74,17 @@ am__vpath_adj = case $$p in \
   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'
@@ -411,11 +414,11 @@ install-dist_docDATA: $(dist_doc_DATA)
 
 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)'; \
index 3b27b1e667d5e6f8e6658a5b70704caa549c48bd..09a0e26e6a5795ac4b30d271ff9f5f78965e5721 100644 (file)
@@ -65,14 +65,17 @@ am__vpath_adj = case $$p in \
   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'
@@ -280,11 +283,11 @@ install-dist_perllibDATA: $(dist_perllib_DATA)
 
 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)"
@@ -299,11 +302,11 @@ install-nodist_perllibDATA: $(nodist_perllib_DATA)
 
 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.
index 54daf75352cee416e286fb94c0e1ba72ec7415c6..e707e490ce017ac681cdeb13a0f90aecae0d4115 100644 (file)
@@ -68,14 +68,17 @@ am__vpath_adj = case $$p in \
   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'
@@ -256,11 +259,11 @@ install-dist_pkgvdataDATA: $(dist_pkgvdata_DATA)
 
 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)"
@@ -275,11 +278,11 @@ install-dist_scriptDATA: $(dist_script_DATA)
 
 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.
index c48675ca0ba30b4b0cfde4fc65df00661545edce..dc888fd22ea6e9a6c800c2b686fc668005b355b0 100644 (file)
@@ -58,14 +58,17 @@ am__vpath_adj = case $$p in \
   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'
@@ -247,11 +250,11 @@ install-dist_amDATA: $(dist_am_DATA)
 
 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:
 
index a7039c0c27fff6cdda72c6747c519dee8029dae3..63db01d652113122a3da67cb976e7dd8e13a1a65 100644 (file)
@@ -70,12 +70,12 @@ if %?INSTALL%
 .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%
 
 
index eb0bba12e62d6ea3421321bcbdf6da4375d6b7d3..4fa0d2281f5d2fc494ae9326382c9675a7a904cc 100644 (file)
@@ -27,6 +27,13 @@ am__vpath_adj = case $$p in \
 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.
@@ -34,14 +41,13 @@ am__install_max = 40
 ## 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' | \
index 98a1fcf36b4344281508a7f23fe6a1740646eb81..f183bee20eca3685580318309c43602417b642c2 100644 (file)
@@ -50,10 +50,10 @@ install-%DIR%JAVA: class%DIR%.stamp
 ## 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%
 
 
@@ -65,10 +65,10 @@ if %?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%
 
 
index 450a1058207da8fe809e80d1d376b5b9e5b2df54..00640094088041e92e725bd18685908d944bb620 100644 (file)
@@ -83,11 +83,12 @@ if %?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%
 
 
index a7759d782ba4408a977774e8d42dd29c6cbed900..bda2bccf98059e9afd5c462118521f7d2c352e14 100644 (file)
@@ -115,14 +115,16 @@ if %?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%
 
 
index 83a8f1b3c7539463dc2f1f5faa38dddef43fa764..cc4cf4a9e18ed649d1982b65b951a4eb1a7253e2 100644 (file)
@@ -63,14 +63,17 @@ if %?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%
 
 
index 7a1cdb2913a7bd6e8e5772390ca7d0f6dd2796b0..5d234867da9846053c34addd8473fdf5e43a1aff 100644 (file)
@@ -95,15 +95,20 @@ if %?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%
 
 
index 1b8b56caab0557ad879b47350c34a4e9ee2e8dc6..e8a9da75d624d17e29f8cf94a7b1ac496369f14f 100644 (file)
@@ -58,14 +58,17 @@ am__vpath_adj = case $$p in \
   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'
@@ -244,11 +247,11 @@ install-dist_m4dataDATA: $(dist_m4data_DATA)
 
 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: