Index: NEWS
===================================================================
RCS file: /sources/libtool/libtool/NEWS,v
retrieving revision 1.204
diff -u -r1.204 NEWS
--- NEWS	8 May 2007 14:38:50 -0000	1.204
+++ NEWS	18 Jun 2007 22:07:09 -0000
@@ -46,6 +46,8 @@
     libtoolize.  The new recursive and non-recursive build modes for
     libltdl don't require a subconfigure any more.
     The Libtool package itself builds libltdl nonrecursively.
+  - New libtoolize option: --clean.  Provides a way to undo the work of
+    libtoolize in order to "un-bootstrap" a project.
   - New multi-module-loader safe libltdl handle iteration APIs:
     lt_dlhandle_iterate, lt_dlhandle_fetch, lt_dlhandle_map.
   - New lt_dlinterface_register to maintain separation of concerns
Index: libtoolize.m4sh
===================================================================
RCS file: /sources/libtool/libtool/libtoolize.m4sh,v
retrieving revision 1.62
diff -u -r1.62 libtoolize.m4sh
--- libtoolize.m4sh	25 Mar 2007 12:12:42 -0000	1.62
+++ libtoolize.m4sh	18 Jun 2007 22:07:09 -0000
@@ -5,7 +5,7 @@
 # libtoolize (GNU @PACKAGE@@TIMESTAMP@) @VERSION@
 # Written by Gary V. Vaughan <gary@gnu.org>, 2003
 
-# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
@@ -34,6 +34,7 @@
 # -n, --dry-run         print commands rather than running them
 # -f, --force           replace existing files
 # -i, --install         copy missing auxiliary files
+#     --clean           remove auxiliary files
 #     --ltdl[=DIR]      install libltdl sources [default: libltdl]
 #     --nonrecursive    prepare ltdl for non-recursive make
 # -q, --quiet           work silently
@@ -84,6 +85,7 @@
 opt_debug=:
 opt_force=false
 opt_install=false
+opt_clean=false
 opt_link=:
 opt_ltdl=false
 
@@ -142,6 +144,10 @@
 
       --install|-i)	opt_install=: ;;
 
+      --clean)		opt_clean=:
+			opt_quiet=:
+			;;
+
       --ltdl)		opt_ltdl=:
       			if test "$#" -gt 0; then
 			  case $1 in
@@ -724,6 +730,17 @@
     my_srcfile="$my_srcdir/$my_filename"
     my_destfile="$my_destdir/$my_filename"
 
+    if $opt_clean; then
+      if $opt_dry_run; then
+        echo rm -f "$my_destfile"
+        my_return_status=0
+      else
+        rm -f "$my_destfile"
+        my_return_status=$?
+      fi
+      return $my_return_status
+    fi
+
     test -f "$my_srcfile" || func_fatal_error "\`$my_srcfile' does not exist."
 
     if test -f "$my_destfile"; then
@@ -745,7 +762,6 @@
 
     if $my_serial_update_p || $opt_force; then
       func_copy "$my_srcfile" "$my_destfile"
-      my_return_status=$?
     elif test "X$my_dest_serial" = "X$my_src_serial"; then
       $opt_quiet \
         || func_echo "\`$my_destfile' is already up to date."
@@ -793,6 +809,17 @@
     my_srcfile="$my_srcdir/$my_filename"
     my_destfile="$my_destdir/$my_filename"
 
+    if $opt_clean; then
+      if $opt_dry_run; then
+        echo rm -f "$my_destfile"
+        my_return_status=0
+      else
+        rm -f "$my_destfile"
+        my_return_status=$?
+      fi
+      return $my_return_status
+    fi
+
     my_keyword_update_p=:
 
     test -f "$my_srcfile" || func_fatal_error "\`$my_srcfile' does not exist."
Index: doc/libtool.texi
===================================================================
RCS file: /sources/libtool/libtool/doc/libtool.texi,v
retrieving revision 1.228
diff -u -r1.228 libtool.texi
--- doc/libtool.texi	8 May 2007 14:38:50 -0000	1.228
+++ doc/libtool.texi	18 Jun 2007 22:07:12 -0000
@@ -2298,6 +2298,9 @@
 
 @table @option
 
+@item --clean
+Remove the files installed by @command{libtoolize}.
+
 @item --copy
 @itemx -c
 Copy files from the libtool data directory rather than creating
Index: tests/libtoolize.at
===================================================================
RCS file: /sources/libtool/libtool/tests/libtoolize.at,v
retrieving revision 1.12
diff -u -r1.12 libtoolize.at
--- tests/libtoolize.at	25 Mar 2007 12:12:43 -0000	1.12
+++ tests/libtoolize.at	18 Jun 2007 22:07:14 -0000
@@ -96,6 +96,34 @@
 AT_CLEANUP
 
 
+## ---------------------- ##
+## Macro un-installation. ##
+## ---------------------- ##
+
+AT_SETUP([Unbootstrap with --clean])
+
+_LT_CONFIGURE_AC
+
+# Save the result of `find' to see whether we properly cleaned everything.
+AT_DATA([list.after], [])
+AT_DATA([list.before], [])
+
+# Create the directories so that they are in list.before
+mkdir m4
+mkdir config
+
+# Save the list of files in the current directory.
+find . | sort >list.before
+
+LT_AT_CHECK_LIBTOOLIZE([--copy], 0, [ignore])
+
+LT_AT_CHECK_LIBTOOLIZE([--clean], 0, [ignore])
+find . | sort >list.after
+AT_CHECK([$at_diff list.before list.after])
+
+AT_CLEANUP
+
+
 ## -------------- ##
 ## Serial update. ##
 ## -------------- ##
